using System;
using System.Globalization;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using CMS.GlobalHelper;
using CMS.SettingsProvider;
using CMS.UIControls;
using CMS.WebAnalytics;
using CMS.ExtendedControls;
public partial class CMSModules_OnlineMarketing_Controls_UI_ABTest_ConversionReportViewer : CMSAdminControl
{
#region "Variables"
private String mReportsName;
private bool reportDisplayed = false;
private IDisplayReport ucDisplayReport;
#endregion
#region "Properties"
///
/// Messages placeholder
///
public override MessagesPlaceHolder MessagesPlaceHolder
{
get
{
return plcMess;
}
}
///
/// Indicates if control is used on live site.
///
public override bool IsLiveSite
{
get
{
return base.IsLiveSite;
}
set
{
plcMess.IsLiveSite = value;
base.IsLiveSite = value;
}
}
///
/// Name of all time reports (year report,monthreport ,...).
///
public String ReportsName
{
get
{
return mReportsName;
}
set
{
mReportsName = value;
}
}
///
/// Gets display report code name
///
public String ReportName
{
get
{
return ucDisplayReport.ReportName;
}
}
///
/// Gets report's parameters
///
public DataRow ReportParameters
{
get
{
return ucDisplayReport.ReportParameters;
}
}
///
/// Gets interval type (hour,day,week,..)
///
public HitsIntervalEnum SelectedInterval
{
get
{
return ucGraphType.SelectedInterval;
}
}
///
/// If true, (all) is added to conversion selector.
///
public bool ShowAllConversions
{
get
{
return ucConversions.AllowAll;
}
set
{
ucConversions.AllowAll = value;
}
}
#endregion
#region "Methods"
protected void Page_Load(object sender, EventArgs e)
{
ucDisplayReport = this.LoadUserControl("~/CMSModules/Reporting/Controls/DisplayReport.ascx") as IDisplayReport;
pnlDisplayReport.Controls.Add((Control)ucDisplayReport);
ucABTests.ReturnColumnName = "ABTestName";
ucABTests.AllowEmpty = false;
ucABTests.ReloadData(false);
ucABTests.PostbackOnChange = true;
ucABTests.UniSelector.OnSelectionChanged += new EventHandler(UniSelector_OnSelectionChanged);
ucConversions.ABTestName = ValidationHelper.GetString(ucABTests.Value, String.Empty);
ucConversions.PostbackOnDropDownChange = true;
}
private void UniSelector_OnSelectionChanged(object sender, EventArgs e)
{
ucConversions.ABTestName = ValidationHelper.GetString(ucABTests.Value, String.Empty);
ucConversions.ReloadData(true);
}
///
/// Displays the report
///
/// If true display reload control is reloaded
public void DisplayReport(bool reload)
{
if (reportDisplayed)
{
return;
}
ucGraphType.ProcessChartSelectors(false);
// Prepare report parameters
DataTable dtp = new DataTable();
dtp.Columns.Add("FromDate", typeof(DateTime));
dtp.Columns.Add("ToDate", typeof(DateTime));
dtp.Columns.Add("CodeName", typeof(string));
dtp.Columns.Add("TestName", typeof(string));
dtp.Columns.Add("ConversionName", typeof(string));
object[] parameters = new object[5];
parameters[0] = ucGraphType.From;
parameters[1] = ucGraphType.To;
parameters[2] = "abtests";
parameters[3] = ValidationHelper.GetString(ucABTests.Value, String.Empty);
// Conversion
String conversion = ValidationHelper.GetString(ucConversions.Value, String.Empty);
if (conversion == ucConversions.AllRecordValue)
{
conversion = String.Empty;
}
parameters[4] = conversion;
dtp.Rows.Add(parameters);
dtp.AcceptChanges();
String reportName = ucGraphType.GetReportName(ReportsName);
ucDisplayReport.ReportName = reportName;
// Conversion count
if (!ucDisplayReport.IsReportLoaded())
{
ShowError(String.Format(GetString("Analytics_Report.ReportDoesnotExist"), reportName));
}
else
{
ucDisplayReport.LoadFormParameters = false;
ucDisplayReport.DisplayFilter = false;
ucDisplayReport.ReportParameters = dtp.Rows[0];
ucDisplayReport.GraphImageWidth = 100;
ucDisplayReport.IgnoreWasInit = true;
ucDisplayReport.UseExternalReload = true;
ucDisplayReport.UseProgressIndicator = true;
ucDisplayReport.SelectedInterval = HitsIntervalEnumFunctions.HitsConversionToString(SelectedInterval);
if (reload)
{
ucDisplayReport.ReloadData(true);
}
}
reportDisplayed = true;
}
protected override void OnPreRender(EventArgs e)
{
DisplayReport(true);
base.OnPreRender(e);
}
///
/// Saves the report - Returns the saved report ID or 0 if some error was occurred or don't have permissions to this report.
///
public int SaveReport()
{
// Don't reload display report - save does it
DisplayReport(false);
int ret = ucDisplayReport.SaveReport();
if (ret > 0)
{
ShowConfirmation(String.Format(GetString("Analytics_Report.ReportSavedTo"), ucDisplayReport.ReportDisplayName + " - " + DateTime.Now.ToString()));
}
return ret;
}
#endregion
}