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 }