xenadmin/XenAdmin/Wlb/WlbReportInfo.cs
Hui Zhang 826d594cca CP-8868: Development for WLB Audit Report - XenCenter Part
Enhance WLB pool audit trail report:
1). Update advance settings to control audit trail granularity.
2). Update pool audit trail report to add user and object lists for selection.
3). Display large pool audit trail report with sections.
4). Localization for Chinese version.
5). Compatibility with WLB 6.5 and 6.1 or before.

Signed-off-by: Hui Zhang <hui.zhang@citrix.com>
2014-07-30 17:10:27 +08:00

178 lines
5.9 KiB
C#

/* Copyright (c) Citrix Systems Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms,
* with or without modification, are permitted provided
* that the following conditions are met:
*
* * Redistributions of source code must retain the above
* copyright notice, this list of conditions and the
* following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the
* following disclaimer in the documentation and/or other
* materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Text;
using System.Xml;
using XenAPI;
using XenAdmin.Core;
using XenAdmin.Wlb;
using XenAdmin.Dialogs;
using XenAdmin.Actions;
using XenAdmin.Help;
using System.Windows.Forms;
namespace XenAdmin.Wlb
{
/// <summary>
/// ReportInfo describes the essential pieces required to successfully render a report
/// within the ReportView control.
/// </summary>
public class WlbReportInfo
{
#region Variables
private string _reportName;
private string _reportFile;
private string _reportDefinition;
private bool _displayHosts;
private bool _displayFilter;
private bool _displayUsers;
private bool _displayAuditObjects;
private OrderedDictionary _reportQueryParameterNames;
#endregion
#region Properties
/// <summary>
/// ReportInfo constructor
/// </summary>
/// <param name="reportName">The name of the report to be rendered</param>
/// <param name="reportFile">The RDLC file name for the report</param>
/// <param name="DisplayHosts">Whether or not the report requires a host parameter value</param>
/// <param name="DisplayUsers">Whether or not the report requires a user parameter value</param>
/// <param name="DisplayAuditObjects">Whether or not the report requires a audit object parameter value</param>
/// <param name="UserNames">List of user names whose values are required for the SQL query</param>
/// <param name="AuditObjectNames">List of audit object names whose values are required for the SQL query</param>
/// <param name="reportQueryParameterNames">List of parameter names whose values are required for the SQL query</param>
public WlbReportInfo(string reportName,
string reportFile,
string reportDefinition,
bool DisplayHosts,
bool DisplayFilter,
bool DisplayUsers,
bool DisplayAuditObjects,
OrderedDictionary reportQueryParameterNames)
{
this._reportName = reportName;
this._reportFile = reportFile;
this._reportDefinition = reportDefinition;
this._displayHosts = DisplayHosts;
this._displayFilter = DisplayFilter;
this._displayUsers = DisplayUsers;
this._displayAuditObjects = DisplayAuditObjects;
this._reportQueryParameterNames = reportQueryParameterNames;
}
/// <summary>
/// The name of the report to be rendered
/// </summary>
public string ReportName
{
get { return _reportName; }
}
/// <summary>
/// The RDLC file name for the report
/// </summary>
public string ReportFile
{
get { return _reportFile; }
}
/// <summary>
/// Definition for the current report
/// </summary>
public string ReportDefinition
{
get { return _reportDefinition; }
}
/// <summary>
/// Whether or not the report requires a host parameter value
/// </summary>
public bool DisplayHosts
{
get { return _displayHosts; }
}
/// <summary>
/// Whether or not the report requires a filter parameter value
/// </summary>
public bool DisplayFilter
{
get { return _displayFilter; }
}
/// <summary>
/// Whether or not the report requires a user parameter value
/// </summary>
public bool DisplayUsers
{
get { return _displayUsers; }
}
/// <summary>
/// Whether or not the report requires an audit object parameter value
/// </summary>
public bool DisplayAuditObjects
{
get { return _displayAuditObjects; }
}
/// <summary>
/// List of parameter names whose values are required for the SQL query
/// </summary>
public OrderedDictionary ReportQueryParameterNames
{
get { return _reportQueryParameterNames; }
}
#endregion
}
}