public static void AddConverter(IDictionary <string, IList <ConverterInstanceInfo> > Converters, ConverterInstanceInfo Converter) { if (string.IsNullOrEmpty(Converter.FieldName.Trim())) { return; } if (!Converters.ContainsKey(Converter.FieldName) || ReferenceEquals(Converters[Converter.FieldName], null)) { Converters[Converter.FieldName] = new List <ConverterInstanceInfo>(); } Converters[Converter.FieldName].Add(Converter); }
private void UpdateDataSourceSettings() { // Load the data source settings into the report var security = new PortalSecurity(); this.Report.Title = this.txtTitle.Text; this.Report.Description = security.InputFilter(this.txtDescription.Text, PortalSecurity.FilterFlag.NoScripting); this.Report.Parameters = this.txtParameters.Text; this.Report.CreatedBy = this.UserId; this.Report.CreatedOn = DateTime.Now; this.Report.DataSource = this.DataSourceDropDown.SelectedValue; // Get the active data source settings control var activeDataSource = this.GetSettingsControlFromView(this.DataSourceSettings.GetActiveView()) as IDataSourceSettingsControl; // If there is an active data source, save its settings if (activeDataSource != null) { this.Report.DataSourceClass = activeDataSource.DataSourceClass; activeDataSource.SaveSettings(this.Report.DataSourceSettings); } // Update Converter settings this.Report.Converters.Clear(); if (!string.IsNullOrEmpty(this.txtHtmlDecode.Text.Trim())) { foreach (var field in this.txtHtmlDecode.Text.Split(',')) { var newConverter = new ConverterInstanceInfo(); newConverter.FieldName = Convert.ToString(field); newConverter.ConverterName = "HtmlDecode"; newConverter.Arguments = null; ConverterUtils.AddConverter(this.Report.Converters, newConverter); } } if (!string.IsNullOrEmpty(this.txtHtmlEncode.Text.Trim())) { foreach (var field in this.txtHtmlEncode.Text.Split(',')) { var newConverter = new ConverterInstanceInfo(); newConverter.FieldName = Convert.ToString(field); newConverter.ConverterName = "HtmlEncode"; newConverter.Arguments = null; ConverterUtils.AddConverter(this.Report.Converters, newConverter); } } }
/// ----------------------------------------------------------------------------- /// <summary> /// ImportModule implements the IPortable ImportModule Interface /// </summary> /// <remarks> /// </remarks> /// <param name="ModuleID">The Id of the module to be imported</param> /// <param name="Content">The content to be imported</param> /// <param name="Version">The version of the module to be imported</param> /// <param name="UserId">The Id of the user performing the import</param> /// <history> /// [anurse] 06/16/2006 Created /// </history> /// ----------------------------------------------------------------------------- public void ImportModule(int ModuleID, string Content, string Version, int UserId) { // Check Access and Version var objUser = UserController.Instance.GetCurrentUserInfo(); if (ReferenceEquals(objUser, null) || !objUser.IsSuperUser) { return; } var objNewReport = new ReportInfo(); var xmlDoc = new XmlDocument(); xmlDoc.LoadXml(string.Format("<content>{0}</content>", Content)); var xmlRoot = xmlDoc.DocumentElement; objNewReport.Title = XmlUtils.GetNodeValue(xmlRoot, "title", string.Empty); objNewReport.Description = XmlUtils.GetNodeValue(xmlRoot, "description", string.Empty); objNewReport.CreatedOn = DateTime.Now; objNewReport.CreatedBy = UserId; var ver = new Version(Version); if (ver.Major == 4) { var sQuery = XmlUtils.GetNodeValue(xmlRoot, "query", string.Empty); if (ver.Minor < 4) { var queryBytes = Convert.FromBase64String(sQuery); sQuery = Encoding.Default.GetString(queryBytes); } objNewReport.DataSource = "DotNetNuke.Modules.DTSReports.DataSources.DNNDataSource"; objNewReport.DataSourceSettings.Add("Query", sQuery); } else { // Load converters foreach (XmlElement xmlElement in xmlRoot.SelectNodes("converters/converter")) { var newConverter = new ConverterInstanceInfo(); newConverter.ConverterName = xmlElement.GetAttribute("name"); newConverter.FieldName = xmlElement.GetAttribute("field"); newConverter.Arguments = xmlElement.InnerText.Split(','); ConverterUtils.AddConverter(objNewReport.Converters, newConverter); } var dsElement = (XmlElement)xmlRoot.SelectSingleNode("datasource"); objNewReport.DataSource = dsElement.GetAttribute("type"); objNewReport.DataSourceClass = dsElement.GetAttribute("class"); objNewReport.DataSourceSettings = ReadSettingsDictionary(dsElement); } // Can't do this because Import/Export module does not have a TabModuleID //Dim visElement As XmlElement = DirectCast(xmlRoot.SelectSingleNode("visualizer"), XmlElement) //objNewReport.CacheDuration = XmlUtils.GetNodeValue(xmlRoot, "cacheDuration", String.Empty) //objNewReport.Visualizer = visElement.GetAttribute("name") //objNewReport.VisualizerSettings = ReadSettingsDictionary(visElement) UpdateReportDefinition(ModuleID, objNewReport); ClearCachedResults(ModuleID); }
/// ----------------------------------------------------------------------------- /// <summary> /// Gets the report associated with a reports module (including tab module /// specific settings) /// </summary> /// <remarks> /// </remarks> /// <param name=" ModuleInfo">The module info</param> /// <history> /// [anurse] 01/15/2007 Created from GetReport(Integer) /// </history> /// ----------------------------------------------------------------------------- public static ReportInfo GetReport(ModuleInfo ModuleInfo) { var ModuleId = ModuleInfo.ModuleID; var TabModuleId = ModuleInfo.TabModuleID; // Check for a null Module Id if (ModuleId == Null.NullInteger) { return(null); } // Extract the Title, Description and Query from the settings var objModuleController = new ModuleController(); var objSettings = ModuleInfo.ModuleSettings; // Check that the settings hashtable was retrieved if (ReferenceEquals(objSettings, null)) { return(null); } // Setup the Report var objReport = new ReportInfo(); // Build the Report from the Module Settings var reportsModuleSettingsRepository = new ReportsModuleSettingsRepository(); var reportsModuleSettings = reportsModuleSettingsRepository.GetSettings(ModuleInfo); objReport.Title = reportsModuleSettings.Title; objReport.Description = reportsModuleSettings.Description; objReport.Parameters = reportsModuleSettings.Parameters; objReport.CreatedOn = reportsModuleSettings.CreatedOn; objReport.CreatedBy = reportsModuleSettings.CreatedBy; objReport.DataSource = reportsModuleSettings.DataSource; objReport.DataSourceClass = reportsModuleSettings.DataSourceClass; objReport.ModuleID = ModuleId; // Load Filter Settings var converterString = Convert.ToString( SettingsUtil.GetHashtableSetting(objSettings, ReportsConstants.SETTING_Converters, Null.NullString)); if (!string.IsNullOrEmpty(converterString.Trim())) { foreach (var converterItem in converterString.Split(';')) { if (!string.IsNullOrEmpty(converterItem.Trim())) { var converterArray = converterItem.Split('|'); if (converterArray.Length >= 2 && converterArray.Length <= 3) { var newconverter = new ConverterInstanceInfo(); newconverter.FieldName = converterArray[0]; newconverter.ConverterName = converterArray[1]; if (converterArray.Length == 3) { newconverter.Arguments = converterArray[2].Split(','); } ConverterUtils.AddConverter(objReport.Converters, newconverter); } } } } // Load the tab module settings (visualizer settings) if we have a tab module Id Hashtable objTabModuleSettings = null; if (TabModuleId != Null.NullInteger) { objTabModuleSettings = ModuleInfo.TabModuleSettings; objReport.ShowControls = reportsModuleSettings.ShowControls; objReport.ShowInfoPane = reportsModuleSettings.ShowInfoPane; objReport.AutoRunReport = reportsModuleSettings.AutoRunReport; objReport.TokenReplace = reportsModuleSettings.TokenReplace; objReport.CacheDuration = reportsModuleSettings.CacheDuration; // Read the visualizer name objReport.Visualizer = Convert.ToString( SettingsUtil.GetHashtableSetting(objTabModuleSettings, ReportsConstants.SETTING_Visualizer, "Grid")); } LoadExtensionSettings(objSettings, objTabModuleSettings, objReport); return(objReport); }