private void SaveReport()
        {
            RetrieveReportSettings();

            var objReportController = new ReportController();

            ReportId = objReportController.UpdateReport(ReportSetId, ReportId, ddReportType.SelectedValue, txtName.Text, cboSkin.SelectedItem.Value, Convert.ToInt32(cpConnection.ConnectionId), txtHeader.Text, txtFooter.Text, txtQuery.Text, ReportConfig, -1, Convert.ToInt32(ddDrilldownReportId.SelectedValue), txtDrilldownFieldname.Text, txtNoItems.Text, txtPageTitle.Text, Convert.ToInt32(txtCommandCacheTimeout.Text), txtMetaDescription.Text, ddCommandCacheScheme.SelectedValue);
        }
        private void InitReport()
        {
            var objReportController = new ReportController();
            var objReport           = objReportController.GetReport(ReportId);

            // load from database
            if (objReport == null)
            {
                Report = new ReportInfo();
            }
            else
            {
                Report = objReport;
            }
        }
        private string ExportReport(int ReportSetId)
        {
            var ctrl = new ReportController();
            var al   = ctrl.ListReport(ReportSetId);
            var info = default(ReportInfo);
            var s    = "<reports>";

            for (var i = 0; i <= al.Count - 1; i++)
            {
                info = (ReportInfo)(al[i]);
                s   += "<report>";
                s   += "<id>" + XmlUtils.XMLEncode(info.ReportId.ToString()) + "</id>";
                s   += "<reportsetid>" + XmlUtils.XMLEncode(info.ReportSetId.ToString()) + "</reportsetid>";
                s   += "<name>" + XmlUtils.XMLEncode(info.ReportName) + "</name>";
                s   += "<theme>" + XmlUtils.XMLEncode(info.ReportTheme) + "</theme>";
                s   += "<command>" + XmlUtils.XMLEncode(info.ReportCommand) + "</command>";
                s   += "<reporttype>" + XmlUtils.XMLEncode(info.ReportTypeId.ToString()) + "</reporttype>";
                s   += "<config>" + XmlUtils.XMLEncode(info.ReportConfig) + "</config>";
                s   += "<connectionid>" + XmlUtils.XMLEncode(info.ReportConnectionId.ToString()) + "</connectionid>";
                s   += "<connectionstring>" + XmlUtils.XMLEncode(info.ReportConnectionString.ToString()) + "</connectionstring>";
                s   += "<footertext>" + XmlUtils.XMLEncode(info.ReportFooterText) + "</footertext>";
                s   += "<headertext>" + XmlUtils.XMLEncode(info.ReportHeaderText) + "</headertext>";
                s   += "<order>" + XmlUtils.XMLEncode(info.ReportOrder.ToString()) + "</order>";
                s   += "<drilldownreportid>" + XmlUtils.XMLEncode(info.ReportDrilldownReportId.ToString()) + "</drilldownreportid>";
                s   += "<drilldownfieldname>" + XmlUtils.XMLEncode(info.ReportDrilldownFieldname) + "</drilldownfieldname>";
                s   += "<noitemstext>" + XmlUtils.XMLEncode(info.ReportNoItemsText) + "</noitemstext>";
                s   += "<pagetitle>" + XmlUtils.XMLEncode(info.ReportPageTitle) + "</pagetitle>";
                s   += "<cachetimeout>" + XmlUtils.XMLEncode(info.ReportCommandCacheTimeout.ToString()) + "</cachetimeout>";
                s   += "<metadescription>" + XmlUtils.XMLEncode(info.ReportMetaDescription) + "</metadescription>";
                s   += "<cachescheme>" + XmlUtils.XMLEncode(info.ReportCommandCacheScheme.ToString()) + "</cachescheme>";

                s += "</report>";
            }
            s += "</reports>";

            return(s);
        }
        private void ImportReport(int ReportSetId, XmlNode root)
        {
            XmlNode xmlReports = root["reports"];

            var ctrl = new ReportController();

            var reportId                  = default(int);
            var reportTypeId              = default(string);
            var reportName                = default(string);
            var reportTheme               = default(string);
            var reportConnectionId        = default(int);
            var reportConnectionString    = default(string);
            var reportFooterText          = default(string);
            var reportHeaderText          = default(string);
            var reportCommand             = default(string);
            var reportConfig              = default(string);
            var reportOrder               = default(int);
            var reportDrilldownReportId   = default(int);
            var reportDrilldownFieldname  = default(string);
            var reportNoItemsText         = default(string);
            var reportPageTitle           = default(string);
            var reportCommandCacheTimeout = default(int);

            var reportMapping = new Hashtable();             //map old reportid to new ones for drilldown reference

            foreach (XmlNode xmlReport in xmlReports.ChildNodes)
            {
                reportId               = Convert.ToInt32(xmlReport["id"].InnerText);
                reportTypeId           = xmlReport["reporttype"].InnerText;
                reportName             = xmlReport["name"].InnerText;
                reportTheme            = xmlReport["theme"].InnerText;
                reportConnectionId     = Convert.ToInt32(xmlReport["connectionid"].InnerText);
                reportConnectionString = xmlReport["connectionstring"].InnerText;
                if (reportConnectionId != (int)ConnectionType.PortalDefault & reportConnectionId != (int)ConnectionType.ReportSetDefault)
                {
                    reportConnectionId = ImportConnection("Imported " + DateTime.Now.ToShortDateString(), reportConnectionString);
                }
                reportFooterText        = xmlReport["footertext"].InnerText;
                reportHeaderText        = xmlReport["headertext"].InnerText;
                reportCommand           = xmlReport["command"].InnerText;
                reportConfig            = xmlReport["config"].InnerText;
                reportOrder             = Convert.ToInt32(xmlReport["order"].InnerText);
                reportDrilldownReportId = Convert.ToInt32(xmlReport["drilldownreportid"].InnerText);
                if (reportDrilldownReportId > -1)
                {
                    if (reportMapping.ContainsKey(reportDrilldownReportId))
                    {
                        reportDrilldownReportId = Convert.ToInt32(reportMapping[reportDrilldownReportId]);
                    }
                }
                reportDrilldownFieldname  = xmlReport["drilldownfieldname"].InnerText;
                reportNoItemsText         = GetNodeInnerText(xmlReport, "noitemstext");
                reportPageTitle           = GetNodeInnerText(xmlReport, "pagetitle");
                reportCommandCacheTimeout = int.Parse(GetNodeInnerText(xmlReport, "cachetimeout", "0"));
                var reportMetaDescription    = GetNodeInnerText(xmlReport, "metadescription");
                var reportCommandCacheScheme = GetNodeInnerText(xmlReport, "cachescheme", "Sliding");

                // check if id is already present
                var newid = ctrl.UpdateReport(ReportSetId, -1, reportTypeId, reportName, reportTheme, reportConnectionId, reportHeaderText, reportFooterText, reportCommand, reportConfig, reportOrder, reportDrilldownReportId, reportDrilldownFieldname, reportNoItemsText, reportPageTitle, reportCommandCacheTimeout, reportMetaDescription, reportCommandCacheScheme);
                reportMapping.Add(reportId, newid);
            }
        }
        private void MoveReport(int ReportId, int Increment)
        {
            var objReportController = new ReportController();

            objReportController.UpdateReportOrder(ReportId, Increment);
        }
        // report
        private void DeleteReport(int ReportId)
        {
            var objReportController = new ReportController();

            objReportController.DeleteReport(ReportId);
        }