protected override void RegisterModules(PaFolder Folder, ArrayList Modules, ArrayList Controls) { InstallerInfo.Log.AddInfo(REGISTER_Controls); ModuleControlController objModuleControls = new ModuleControlController(); ModuleControlInfo objModuleControl; foreach (ModuleControlInfo tempLoopVar_objModuleControl in Controls) { objModuleControl = tempLoopVar_objModuleControl; // Skins Objects have a null ModuleDefID objModuleControl.ModuleDefID = Null.NullInteger; // check if control exists ModuleControlInfo objModuleControl2 = objModuleControls.GetModuleControlByKeyAndSrc(Null.NullInteger, objModuleControl.ControlKey, objModuleControl.ControlSrc); if (objModuleControl2 == null) { // add new control objModuleControls.AddModuleControl(objModuleControl); } else { // update existing control objModuleControl.ModuleControlID = objModuleControl2.ModuleControlID; objModuleControls.UpdateModuleControl(objModuleControl); } } InstallerInfo.Log.EndJob(REGISTER_End); }
/// <summary> /// </summary> /// <remarks> /// </remarks> /// <history> /// </history> private bool CreateModuleDefinition() { try { if (PackageController.Instance.GetExtensionPackage(Null.NullInteger, p => p.Name == GetClassName()) == null) { var controlName = Null.NullString; //Create module folder CreateModuleFolder(); //Create module control controlName = CreateModuleControl(); if (controlName != "") { //Create package var objPackage = new PackageInfo(); objPackage.Name = GetClassName(); objPackage.FriendlyName = txtModule.Text; objPackage.Description = txtDescription.Text; objPackage.Version = new Version(1, 0, 0); objPackage.PackageType = "Module"; objPackage.License = ""; objPackage.Owner = txtOwner.Text; objPackage.Organization = txtOwner.Text; objPackage.FolderName = "DesktopModules/" + GetFolderName(); objPackage.License = "The license for this package is not currently included within the installation file, please check with the vendor for full license details."; objPackage.ReleaseNotes = "This package has no Release Notes."; PackageController.Instance.SaveExtensionPackage(objPackage); //Create desktopmodule var objDesktopModules = new DesktopModuleController(); var objDesktopModule = new DesktopModuleInfo(); objDesktopModule.DesktopModuleID = Null.NullInteger; objDesktopModule.ModuleName = GetClassName(); objDesktopModule.FolderName = GetFolderName(); objDesktopModule.FriendlyName = txtModule.Text; objDesktopModule.Description = txtDescription.Text; objDesktopModule.IsPremium = false; objDesktopModule.IsAdmin = false; objDesktopModule.Version = "01.00.00"; objDesktopModule.BusinessControllerClass = ""; objDesktopModule.CompatibleVersions = ""; objDesktopModule.Dependencies = ""; objDesktopModule.Permissions = ""; objDesktopModule.PackageID = objPackage.PackageID; objDesktopModule.DesktopModuleID = objDesktopModules.AddDesktopModule(objDesktopModule); objDesktopModule = objDesktopModules.GetDesktopModule(objDesktopModule.DesktopModuleID); //Add OwnerName to the DesktopModule taxonomy and associate it with this module var vocabularyId = -1; var termId = -1; var objTermController = DotNetNuke.Entities.Content.Common.Util.GetTermController(); var objTerms = objTermController.GetTermsByVocabulary("Module_Categories"); foreach (Term term in objTerms) { vocabularyId = term.VocabularyId; if (term.Name == txtOwner.Text) { termId = term.TermId; } } if (termId == -1) { termId = objTermController.AddTerm(new Term(vocabularyId) { Name = txtOwner.Text }); } var objTerm = objTermController.GetTerm(termId); var objContentController = DotNetNuke.Entities.Content.Common.Util.GetContentController(); var objContent = objContentController.GetContentItem(objDesktopModule.ContentItemId); objTermController.AddTermToContent(objTerm, objContent); //Add desktopmodule to all portals DesktopModuleController.AddDesktopModuleToPortals(objDesktopModule.DesktopModuleID); //Create module definition var objModuleDefinition = new ModuleDefinitionInfo(); objModuleDefinition.ModuleDefID = Null.NullInteger; objModuleDefinition.DesktopModuleID = objDesktopModule.DesktopModuleID; // need core enhancement to have a unique DefinitionName objModuleDefinition.FriendlyName = GetClassName(); //objModuleDefinition.FriendlyName = txtModule.Text; //objModuleDefinition.DefinitionName = GetClassName(); objModuleDefinition.DefaultCacheTime = 0; objModuleDefinition.ModuleDefID = ModuleDefinitionController.SaveModuleDefinition(objModuleDefinition, false, true); //Create modulecontrol var objModuleControl = new ModuleControlInfo(); objModuleControl.ModuleControlID = Null.NullInteger; objModuleControl.ModuleDefID = objModuleDefinition.ModuleDefID; objModuleControl.ControlKey = ""; objModuleControl.ControlSrc = "DesktopModules/" + GetFolderName() + "/" + controlName; objModuleControl.ControlTitle = ""; objModuleControl.ControlType = SecurityAccessLevel.View; objModuleControl.HelpURL = ""; objModuleControl.IconFile = ""; objModuleControl.ViewOrder = 0; objModuleControl.SupportsPartialRendering = false; objModuleControl.SupportsPopUps = false; ModuleControlController.AddModuleControl(objModuleControl); //Update current module to reference new moduledefinition var objModules = new ModuleController(); var objModule = objModules.GetModule(ModuleId, TabId, false); objModule.ModuleDefID = objModuleDefinition.ModuleDefID; objModule.ModuleTitle = txtModule.Text; //HACK - need core enhancement to be able to update ModuleDefID DotNetNuke.Data.DataProvider.Instance().ExecuteSQL("Update dbo.Modules set ModuleDefID = " + objModule.ModuleDefID.ToString() + " where ModuleID = " + ModuleId.ToString()); objModules.UpdateModule(objModule); return(true); } else { DotNetNuke.UI.Skins.Skin.AddModuleMessage(this, Localization.GetString("TemplateProblem.ErrorMessage", LocalResourceFile), ModuleMessage.ModuleMessageType.YellowWarning); return(false); } } else { DotNetNuke.UI.Skins.Skin.AddModuleMessage(this, Localization.GetString("AlreadyExists.ErrorMessage", LocalResourceFile), ModuleMessage.ModuleMessageType.YellowWarning); return(false); } } catch (Exception exc) { Exceptions.LogException(exc); DotNetNuke.UI.Skins.Skin.AddModuleMessage(this, exc.ToString(), ModuleMessage.ModuleMessageType.RedError); return(false); } }
/// <summary> /// </summary> /// <remarks> /// Loads the cboSource control list with locations of controls. /// </remarks> /// <history> /// </history> private ModuleDefinitionInfo ImportControl(string controlSrc) { ModuleDefinitionInfo moduleDefinition = null; try { string folder = PathUtils.Instance.RemoveTrailingSlash(GetSourceFolder()); string friendlyName = txtName.Text; string name = GetClassName(); string moduleControl = "DesktopModules/" + folder + "/" + controlSrc; var packageInfo = PackageController.Instance.GetExtensionPackage(Null.NullInteger, p => p.Name == name || p.FriendlyName == friendlyName); if (packageInfo != null) { UI.Skins.Skin.AddModuleMessage(this, String.Format(Localization.GetString("NonuniqueNameModule", LocalResourceFile), packageInfo.FriendlyName), ModuleMessage.ModuleMessageType.RedError); } else { var package = new PackageInfo { Name = name, FriendlyName = friendlyName, Description = txtDescription.Text, Version = new Version(1, 0, 0), PackageType = "Module", License = Util.PACKAGE_NoLicense }; //Save Package PackageController.Instance.SaveExtensionPackage(package); var objDesktopModule = new DesktopModuleInfo { DesktopModuleID = Null.NullInteger, ModuleName = name, FolderName = folder, FriendlyName = friendlyName, Description = txtDescription.Text, IsPremium = false, IsAdmin = false, Version = "01.00.00", BusinessControllerClass = "", CompatibleVersions = "", Dependencies = "", Permissions = "", PackageID = package.PackageID }; objDesktopModule.DesktopModuleID = DesktopModuleController.SaveDesktopModule(objDesktopModule, false, true); //Add module to all portals DesktopModuleController.AddDesktopModuleToPortals(objDesktopModule.DesktopModuleID); //Save module definition moduleDefinition = new ModuleDefinitionInfo(); moduleDefinition.ModuleDefID = Null.NullInteger; moduleDefinition.DesktopModuleID = objDesktopModule.DesktopModuleID; moduleDefinition.FriendlyName = friendlyName; moduleDefinition.DefaultCacheTime = 0; moduleDefinition.ModuleDefID = ModuleDefinitionController.SaveModuleDefinition(moduleDefinition, false, true); //Save module control var objModuleControl = new ModuleControlInfo(); objModuleControl.ModuleControlID = Null.NullInteger; objModuleControl.ModuleDefID = moduleDefinition.ModuleDefID; objModuleControl.ControlKey = ""; objModuleControl.ControlSrc = moduleControl; objModuleControl.ControlTitle = ""; objModuleControl.ControlType = SecurityAccessLevel.View; objModuleControl.HelpURL = ""; objModuleControl.IconFile = ""; objModuleControl.ViewOrder = 0; objModuleControl.SupportsPartialRendering = false; ModuleControlController.AddModuleControl(objModuleControl); } } catch (Exception exc) { Exceptions.LogException(exc); UI.Skins.Skin.AddModuleMessage(this, Localization.GetString("ImportControl.ErrorMessage", LocalResourceFile), ModuleMessage.ModuleMessageType.RedError); } return(moduleDefinition); }
private string CreateModuleControl() { var objModuleControl = ModuleControlController.GetModuleControl(ModuleControlId); var objModuleDefinition = ModuleDefinitionController.GetModuleDefinitionByID(objModuleControl.ModuleDefID); var objDesktopModule = DesktopModuleController.GetDesktopModule(objModuleDefinition.DesktopModuleID, PortalId); var objPackage = PackageController.Instance.GetExtensionPackage(Null.NullInteger, p => p.PackageID == objDesktopModule.PackageID); var moduleTemplatePath = Server.MapPath(ControlPath) + "Templates\\" + optLanguage.SelectedValue + "\\" + cboTemplate.SelectedValue + "\\"; EventLogController.Instance.AddLog("Processing Template Folder", moduleTemplatePath, PortalSettings, -1, EventLogController.EventLogType.HOST_ALERT); var controlName = Null.NullString; var fileName = Null.NullString; var modulePath = Null.NullString; var sourceCode = Null.NullString; //iterate through files in template folder string[] fileList = Directory.GetFiles(moduleTemplatePath); foreach (string filePath in fileList) { modulePath = Server.MapPath("DesktopModules/" + objDesktopModule.FolderName + "/"); //open file using (TextReader tr = new StreamReader(filePath)) { sourceCode = tr.ReadToEnd(); tr.Close(); } //replace tokens var owner = objPackage.Owner.Replace(" ", ""); if (string.IsNullOrEmpty(owner)) { owner = "DNN"; } sourceCode = sourceCode.Replace("_OWNER_", owner); sourceCode = sourceCode.Replace("_MODULE_", objDesktopModule.FriendlyName.Replace(" ", "")); sourceCode = sourceCode.Replace("_CONTROL_", GetControl()); sourceCode = sourceCode.Replace("_YEAR_", DateTime.Now.Year.ToString()); //get filename fileName = Path.GetFileName(filePath); fileName = fileName.Replace("template", GetControl()); fileName = fileName.Replace("_OWNER_", objPackage.Owner.Replace(" ", "")); fileName = fileName.Replace("_MODULE_", objDesktopModule.FriendlyName.Replace(" ", "")); fileName = fileName.Replace("_CONTROL_", GetControl()); switch (Path.GetExtension(filePath).ToLower()) { case ".ascx": controlName = fileName; break; case ".vbhtml": controlName = fileName; break; case ".cshtml": controlName = fileName; break; case ".resx": modulePath = modulePath + "\\App_LocalResources\\"; break; case ".vb": if (filePath.ToLower().IndexOf(".ascx") == -1) { modulePath = modulePath.Replace("DesktopModules", "App_Code"); } break; case ".cs": if (filePath.ToLower().IndexOf(".ascx") == -1) { modulePath = modulePath.Replace("DesktopModules", "App_Code"); } break; case ".js": modulePath = modulePath + "\\js\\"; break; } //check if folder exists if (!Directory.Exists(modulePath)) { Directory.CreateDirectory(modulePath); } //check if file already exists if (!File.Exists(modulePath + fileName)) { //create file using (TextWriter tw = new StreamWriter(modulePath + fileName)) { tw.WriteLine(sourceCode); tw.Close(); } EventLogController.Instance.AddLog("Created File", modulePath + fileName, PortalSettings, -1, EventLogController.EventLogType.HOST_ALERT); } } //Create module control if (controlName != Null.NullString) { try { objModuleControl = new ModuleControlInfo(); objModuleControl.ModuleControlID = Null.NullInteger; objModuleControl.ModuleDefID = objModuleDefinition.ModuleDefID; objModuleControl.ControlKey = GetControl(); objModuleControl.ControlSrc = "DesktopModules/" + objDesktopModule.FolderName + "/" + controlName; objModuleControl.ControlTitle = txtControl.Text; objModuleControl.ControlType = (SecurityAccessLevel)Enum.Parse(typeof(SecurityAccessLevel), cboType.SelectedItem.Value); objModuleControl.HelpURL = ""; objModuleControl.IconFile = ""; objModuleControl.ViewOrder = 0; objModuleControl.SupportsPartialRendering = true; objModuleControl.SupportsPopUps = true; ModuleControlController.AddModuleControl(objModuleControl); controlName = objModuleControl.ControlSrc; } catch { //Suppress error } } DotNetNuke.UI.Skins.Skin.AddModuleMessage(this, Localization.GetString("ControlCreated", LocalResourceFile), ModuleMessage.ModuleMessageType.GreenSuccess); return(controlName); }
private int CreateModuleFromControl(CreateModuleDto createModuleDto, out string newPageUrl, out string errorMessage) { newPageUrl = string.Empty; errorMessage = string.Empty; if (string.IsNullOrEmpty(createModuleDto.FileName)) { errorMessage = "NoControl"; return(Null.NullInteger); } try { var folder = PathUtils.Instance.RemoveTrailingSlash(GetSourceFolder(createModuleDto)); var friendlyName = createModuleDto.ModuleName; var name = createModuleDto.ModuleName; var moduleControl = "DesktopModules/" + folder + "/" + createModuleDto.FileName; var packageInfo = PackageController.Instance.GetExtensionPackage(Null.NullInteger, p => p.Name.Equals(createModuleDto.ModuleName, StringComparison.OrdinalIgnoreCase) || p.FriendlyName.Equals(createModuleDto.ModuleName, StringComparison.OrdinalIgnoreCase)); if (packageInfo != null) { errorMessage = "NonuniqueName"; return(Null.NullInteger); } var package = new PackageInfo { Name = name, FriendlyName = friendlyName, Description = createModuleDto.Description, Version = new Version(1, 0, 0), PackageType = "Module", License = Util.PACKAGE_NoLicense }; //Save Package PackageController.Instance.SaveExtensionPackage(package); var objDesktopModule = new DesktopModuleInfo { DesktopModuleID = Null.NullInteger, ModuleName = name, FolderName = folder, FriendlyName = friendlyName, Description = createModuleDto.Description, IsPremium = false, IsAdmin = false, Version = "01.00.00", BusinessControllerClass = "", CompatibleVersions = "", Dependencies = "", Permissions = "", PackageID = package.PackageID }; objDesktopModule.DesktopModuleID = DesktopModuleController.SaveDesktopModule(objDesktopModule, false, true); //Add module to all portals DesktopModuleController.AddDesktopModuleToPortals(objDesktopModule.DesktopModuleID); //Save module definition var moduleDefinition = new ModuleDefinitionInfo(); moduleDefinition.ModuleDefID = Null.NullInteger; moduleDefinition.DesktopModuleID = objDesktopModule.DesktopModuleID; moduleDefinition.FriendlyName = friendlyName; moduleDefinition.DefaultCacheTime = 0; moduleDefinition.ModuleDefID = ModuleDefinitionController.SaveModuleDefinition(moduleDefinition, false, true); //Save module control var objModuleControl = new ModuleControlInfo(); objModuleControl.ModuleControlID = Null.NullInteger; objModuleControl.ModuleDefID = moduleDefinition.ModuleDefID; objModuleControl.ControlKey = ""; objModuleControl.ControlSrc = moduleControl; objModuleControl.ControlTitle = ""; objModuleControl.ControlType = SecurityAccessLevel.View; objModuleControl.HelpURL = ""; objModuleControl.IconFile = ""; objModuleControl.ViewOrder = 0; objModuleControl.SupportsPartialRendering = false; ModuleControlController.AddModuleControl(objModuleControl); if (createModuleDto.AddPage) { newPageUrl = CreateNewPage(moduleDefinition); } return(package.PackageID); } catch (Exception ex) { Exceptions.LogException(ex); errorMessage = "CreateModuleFailed"; return(Null.NullInteger); } }
/// <summary> /// </summary> /// <remarks> /// Loads the cboSource control list with locations of controls. /// </remarks> /// <history> /// </history> private ModuleDefinitionInfo ImportControl(string controlSrc) { ModuleDefinitionInfo moduleDefinition = null; try { string folder = PathUtils.Instance.RemoveTrailingSlash(GetSourceFolder()); string friendlyName = txtName.Text; string name = GetClassName(); string moduleControl = "DesktopModules/" + folder + "/" + controlSrc; var package = new PackageInfo(); package.Name = name; package.FriendlyName = friendlyName; package.Description = txtDescription.Text; package.Version = new Version(1, 0, 0); package.PackageType = "Module"; package.License = Util.PACKAGE_NoLicense; //Save Package PackageController.SavePackage(package); var objDesktopModules = new DesktopModuleController(); var objDesktopModule = new DesktopModuleInfo(); objDesktopModule.DesktopModuleID = Null.NullInteger; objDesktopModule.ModuleName = name; objDesktopModule.FolderName = folder; objDesktopModule.FriendlyName = friendlyName; objDesktopModule.Description = txtDescription.Text; objDesktopModule.IsPremium = false; objDesktopModule.IsAdmin = false; objDesktopModule.Version = "01.00.00"; objDesktopModule.BusinessControllerClass = ""; objDesktopModule.CompatibleVersions = ""; objDesktopModule.Dependencies = ""; objDesktopModule.Permissions = ""; objDesktopModule.PackageID = package.PackageID; #pragma warning disable 612,618 objDesktopModule.DesktopModuleID = objDesktopModules.AddDesktopModule(objDesktopModule); #pragma warning restore 612,618 //Add module to all portals DesktopModuleController.AddDesktopModuleToPortals(objDesktopModule.DesktopModuleID); //Save module definition moduleDefinition = new ModuleDefinitionInfo(); moduleDefinition.ModuleDefID = Null.NullInteger; moduleDefinition.DesktopModuleID = objDesktopModule.DesktopModuleID; moduleDefinition.FriendlyName = friendlyName; moduleDefinition.DefaultCacheTime = 0; moduleDefinition.ModuleDefID = ModuleDefinitionController.SaveModuleDefinition(moduleDefinition, false, true); //Save module control var objModuleControl = new ModuleControlInfo(); objModuleControl.ModuleControlID = Null.NullInteger; objModuleControl.ModuleDefID = moduleDefinition.ModuleDefID; objModuleControl.ControlKey = ""; objModuleControl.ControlSrc = moduleControl; objModuleControl.ControlTitle = ""; objModuleControl.ControlType = SecurityAccessLevel.View; objModuleControl.HelpURL = ""; objModuleControl.IconFile = ""; objModuleControl.ViewOrder = 0; objModuleControl.SupportsPartialRendering = false; ModuleControlController.AddModuleControl(objModuleControl); } catch (Exception exc) { Exceptions.LogException(exc); UI.Skins.Skin.AddModuleMessage(this, Localization.GetString("ImportControl.ErrorMessage", LocalResourceFile), ModuleMessage.ModuleMessageType.RedError); } return(moduleDefinition); }
protected void btnUpdate_Click(object sender, EventArgs e) { try { if (controlId == 0) // add control { if (txtControlKey.Text != string.Empty && ModuleControlController.CheckExistsControlKey(txtControlKey.Text)) { this.lblUpdateStatus.Text = MiscUtility.MSG_CONTROKEY_EXISTS; return; } ModuleInfo module = ModuleController.GetModule(moduleId); if (module == null) { return; } ModuleControlInfo moduleControl = new ModuleControlInfo(); moduleControl.ModuleID = module.ModuleID; moduleControl.ControlName = txtControlName.Text.Trim(); moduleControl.ControlKey = txtControlKey.Text.Trim(); moduleControl.ControlPath = dropPath.SelectedValue; moduleControl.ControlIcon = txtControlIcon.Text.Trim(); moduleControl.ControlOrder = ConvertUtility.ToInt32(dropControlOrder.SelectedValue); moduleControl.ControlHeader = chkControlHeader.Checked; string roleList = "|"; foreach (ListItem item in chkControlType.Items) { if (item.Selected) { roleList += item.Value + "|"; } } if (roleList.Length < 2) { roleList = string.Empty; } moduleControl.ControlTitle = txtControlTitle.Text; moduleControl.ControlRole = roleList; moduleControl.ControlDescription = txtControlDescription.Text.Trim(); ModuleControlController.AddModuleControl(moduleControl); } else // update control { ModuleControlInfo moduleControl = ModuleControlController.GetModuleControl(controlId); moduleControl.ControlName = txtControlName.Text.Trim(); moduleControl.ControlDescription = txtControlDescription.Text; moduleControl.ControlKey = txtControlKey.Text.Trim(); moduleControl.ControlPath = dropPath.SelectedValue; moduleControl.ControlIcon = txtControlIcon.Text.Trim(); moduleControl.ControlOrder = ConvertUtility.ToInt32(dropControlOrder.SelectedValue); string roleList = "|"; foreach (ListItem item in chkControlType.Items) { if (item.Selected) { roleList += item.Value + "|"; } } //if (roleList.Length < 2) roleList = string.Empty; moduleControl.ControlRole = roleList; moduleControl.ControlDescription = txtControlDescription.Text.Trim(); moduleControl.ControlHeader = chkControlHeader.Checked; ModuleControlController.UpdateModuleControl(moduleControl); } this.lblUpdateStatus.Text = MiscUtility.MSG_UPDATE_SUCCESS; } catch (Exception ex) { Response.Write(ex.Message); } }
protected virtual void RegisterModules(PaFolder Folder, ArrayList Modules, ArrayList Controls) { InstallerInfo.Log.StartJob(REGISTER_Module); DesktopModuleController objDesktopModules = new DesktopModuleController(); // check if desktop module exists DesktopModuleInfo objDesktopModule = GetDesktopModule(Folder); if (objDesktopModule == null) { objDesktopModule = new DesktopModuleInfo(); objDesktopModule.DesktopModuleID = Null.NullInteger; } objDesktopModule = GetDesktopModuleSettings(objDesktopModule, Folder); if (Null.IsNull(objDesktopModule.DesktopModuleID)) { // new desktop module objDesktopModule.DesktopModuleID = objDesktopModules.AddDesktopModule(objDesktopModule); } else { // existing desktop module objDesktopModules.UpdateDesktopModule(objDesktopModule); } InstallerInfo.Log.AddInfo(REGISTER_Definition); ModuleDefinitionController objModuleDefinitons = new ModuleDefinitionController(); foreach (ModuleDefinitionInfo objModuleDefinition in Modules) { // check if definition exists ModuleDefinitionInfo objModuleDefinition2 = objModuleDefinitons.GetModuleDefinitionByName(objDesktopModule.DesktopModuleID, objModuleDefinition.FriendlyName); if (objModuleDefinition2 == null) { // add new definition objModuleDefinition.DesktopModuleID = objDesktopModule.DesktopModuleID; objModuleDefinition.ModuleDefID = objModuleDefinitons.AddModuleDefinition(objModuleDefinition); } else { // update existing definition objModuleDefinition.ModuleDefID = objModuleDefinition2.ModuleDefID; objModuleDefinitons.UpdateModuleDefinition(objModuleDefinition); } } InstallerInfo.Log.AddInfo(REGISTER_Controls); ModuleControlController objModuleControls = new ModuleControlController(); foreach (ModuleControlInfo objModuleControl in Controls) { // get the real ModuleDefID from the associated Module objModuleControl.ModuleDefID = GetModDefID(objModuleControl.ModuleDefID, Modules); // check if control exists ModuleControlInfo objModuleControl2 = objModuleControls.GetModuleControlByKeyAndSrc(objModuleControl.ModuleDefID, objModuleControl.ControlKey, objModuleControl.ControlSrc); if (objModuleControl2 == null) { // add new control objModuleControls.AddModuleControl(objModuleControl); } else { // update existing control objModuleControl.ModuleControlID = objModuleControl2.ModuleControlID; objModuleControls.UpdateModuleControl(objModuleControl); } } InstallerInfo.Log.EndJob(REGISTER_End); UpgradeModule(objDesktopModule); }
/// <summary> /// cmdUpdate_Click runs when the Update Button is clicked /// </summary> /// <returns></returns> /// <remarks> /// </remarks> /// <history> /// [cnurse] 9/28/2004 Updated to reflect design changes for Help, 508 support /// and localisation /// </history> protected void cmdUpdate_Click(object sender, EventArgs e) { try { if (Page.IsValid) { ModuleControlInfo objModuleControl = new ModuleControlInfo(); objModuleControl.ModuleControlID = ModuleControlId; objModuleControl.ModuleDefID = ModuleDefId; if (!String.IsNullOrEmpty(txtKey.Text)) { objModuleControl.ControlKey = txtKey.Text; } else { objModuleControl.ControlKey = Null.NullString; } if (!String.IsNullOrEmpty(txtTitle.Text)) { objModuleControl.ControlTitle = txtTitle.Text; } else { objModuleControl.ControlTitle = Null.NullString; } objModuleControl.ControlSrc = cboSource.SelectedItem.Text; objModuleControl.ControlType = (SecurityAccessLevel)Enum.Parse(typeof(SecurityAccessLevel), cboType.SelectedItem.Value); if (!String.IsNullOrEmpty(txtViewOrder.Text)) { objModuleControl.ViewOrder = int.Parse(txtViewOrder.Text); } else { objModuleControl.ViewOrder = Null.NullInteger; } if (cboIcon.SelectedIndex > 0) { objModuleControl.IconFile = cboIcon.SelectedItem.Text; } else { objModuleControl.IconFile = Null.NullString; } if (!String.IsNullOrEmpty(txtHelpURL.Text)) { objModuleControl.HelpURL = txtHelpURL.Text; } else { objModuleControl.HelpURL = Null.NullString; } ModuleControlController objModuleControls = new ModuleControlController(); if (Null.IsNull(ModuleControlId)) { try { objModuleControls.AddModuleControl(objModuleControl); } catch { UI.Skins.Skin.AddModuleMessage(this, Localization.GetString("AddControl.ErrorMessage", this.LocalResourceFile), ModuleMessageType.RedError); return; } } else { objModuleControls.UpdateModuleControl(objModuleControl); } if (DesktopModuleId == -1) { DesktopModuleId = -2; } Response.Redirect(EditUrl("desktopmoduleid", DesktopModuleId.ToString()), true); } } catch (Exception exc) //Module failed to load { Exceptions.ProcessModuleLoadException(this, exc); } }
/// <remarks> /// Loads the cboSource control list with locations of controls. /// </remarks> private void InstallManifest(string strManifest) { XmlDocument doc = new XmlDocument(); try { doc.Load(strManifest); XmlNode dnnRoot = doc.DocumentElement; foreach (XmlElement FolderElement in dnnRoot.SelectNodes("folders/folder")) { DesktopModuleController objDesktopModules = new DesktopModuleController(); DesktopModuleInfo objDesktopModule = new DesktopModuleInfo(); objDesktopModule.DesktopModuleID = Null.NullInteger; objDesktopModule.ModuleName = XmlUtils.GetNodeValue(FolderElement, "modulename", ""); objDesktopModule.FolderName = XmlUtils.GetNodeValue(FolderElement, "foldername", ""); objDesktopModule.FriendlyName = XmlUtils.GetNodeValue(FolderElement, "friendlyname", ""); if (objDesktopModule.FolderName == "") { objDesktopModule.FolderName = objDesktopModule.ModuleName; } objDesktopModule.Description = XmlUtils.GetNodeValue(FolderElement, "description", ""); objDesktopModule.IsPremium = false; objDesktopModule.IsAdmin = false; objDesktopModule.Version = XmlUtils.GetNodeValue(FolderElement, "version", ""); objDesktopModule.BusinessControllerClass = XmlUtils.GetNodeValue(FolderElement, "businesscontrollerclass", ""); objDesktopModule.CompatibleVersions = XmlUtils.GetNodeValue(FolderElement, "compatibleversions", ""); objDesktopModule.DesktopModuleID = objDesktopModules.AddDesktopModule(objDesktopModule); foreach (XmlElement ModuleElement in FolderElement.SelectNodes("modules/module")) { ModuleDefinitionController objModuleDefinitions = new ModuleDefinitionController(); ModuleDefinitionInfo objModuleDefinition = new ModuleDefinitionInfo(); objModuleDefinition.ModuleDefID = Null.NullInteger; objModuleDefinition.DesktopModuleID = objDesktopModule.DesktopModuleID; objModuleDefinition.FriendlyName = XmlUtils.GetNodeValue(ModuleElement, "friendlyname", ""); objModuleDefinition.DefaultCacheTime = XmlUtils.GetNodeValueInt(ModuleElement, "cachetime", 0); objModuleDefinition.ModuleDefID = objModuleDefinitions.AddModuleDefinition(objModuleDefinition); foreach (XmlElement ControlElement in ModuleElement.SelectNodes("controls/control")) { ModuleControlController objModuleControls = new ModuleControlController(); ModuleControlInfo objModuleControl = new ModuleControlInfo(); objModuleControl.ModuleControlID = Null.NullInteger; objModuleControl.ModuleDefID = objModuleDefinition.ModuleDefID; objModuleControl.ControlKey = XmlUtils.GetNodeValue(ControlElement, "key", ""); objModuleControl.ControlSrc = XmlUtils.GetNodeValue(ControlElement, "src", ""); objModuleControl.ControlTitle = XmlUtils.GetNodeValue(ControlElement, "title", ""); switch (XmlUtils.GetNodeValue(ControlElement, "type", "")) { case "Anonymous": objModuleControl.ControlType = SecurityAccessLevel.Anonymous; break; case "View": objModuleControl.ControlType = SecurityAccessLevel.View; break; case "Edit": objModuleControl.ControlType = SecurityAccessLevel.Edit; break; case "Admin": objModuleControl.ControlType = SecurityAccessLevel.Admin; break; case "Host": objModuleControl.ControlType = SecurityAccessLevel.Host; break; } objModuleControl.HelpURL = XmlUtils.GetNodeValue(ControlElement, "helpurl", ""); objModuleControl.IconFile = XmlUtils.GetNodeValue(ControlElement, "iconfile", ""); objModuleControl.ViewOrder = XmlUtils.GetNodeValueInt(ControlElement, "vieworder", 0); objModuleControls.AddModuleControl(objModuleControl); } } // update interfaces UpdateModuleInterfaces(objDesktopModule.BusinessControllerClass); } Response.Redirect(Globals.NavigateURL(), true); } catch { // can not open manifest UI.Skins.Skin.AddModuleMessage(this, Localization.GetString("InstallManifest.ErrorMessage", this.LocalResourceFile), ModuleMessageType.RedError); } }