Exemplo n.º 1
0
        /// <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 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);
        }
Exemplo n.º 3
0
        /// <summary>
        /// cmdUpdate_Click runs when the Update Button is clicked
        /// </summary>
        /// <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)
                {
                    DesktopModuleInfo objDesktopModule = new DesktopModuleInfo();

                    objDesktopModule.DesktopModuleID = DesktopModuleId;
                    objDesktopModule.ModuleName      = txtModuleName.Text;
                    objDesktopModule.FolderName      = txtFolderName.Text;
                    objDesktopModule.FriendlyName    = txtFriendlyName.Text;
                    if (objDesktopModule.FolderName == "")
                    {
                        objDesktopModule.FolderName = objDesktopModule.ModuleName;
                    }
                    objDesktopModule.Description = txtDescription.Text;
                    objDesktopModule.IsPremium   = chkPremium.Checked;
                    objDesktopModule.IsAdmin     = false;

                    if (!String.IsNullOrEmpty(txtVersion.Text))
                    {
                        objDesktopModule.Version = txtVersion.Text;
                    }
                    else
                    {
                        objDesktopModule.Version = Null.NullString;
                    }

                    if (!String.IsNullOrEmpty(txtBusinessClass.Text))
                    {
                        objDesktopModule.BusinessControllerClass = txtBusinessClass.Text;
                    }
                    else
                    {
                        objDesktopModule.BusinessControllerClass = Null.NullString;
                    }

                    if (!String.IsNullOrEmpty(txtCompatibleVersions.Text))
                    {
                        objDesktopModule.CompatibleVersions = txtCompatibleVersions.Text;
                    }
                    else
                    {
                        objDesktopModule.CompatibleVersions = Null.NullString;
                    }


                    DesktopModuleController objDesktopModules = new DesktopModuleController();

                    if (Null.IsNull(DesktopModuleId))
                    {
                        try
                        {
                            objDesktopModule.DesktopModuleID = objDesktopModules.AddDesktopModule(objDesktopModule);
                        }
                        catch
                        {
                            UI.Skins.Skin.AddModuleMessage(this, Localization.GetString("AddModule.ErrorMessage", this.LocalResourceFile), ModuleMessageType.RedError);
                            return;
                        }
                    }
                    else
                    {
                        objDesktopModules.UpdateDesktopModule(objDesktopModule);
                    }

                    // delete old portal module assignments
                    objDesktopModules.DeletePortalDesktopModules(Null.NullInteger, objDesktopModule.DesktopModuleID);
                    // add new portal module assignments
                    if (objDesktopModule.IsPremium)
                    {
                        foreach (ListItem objListItem in ctlPortals.Assigned)
                        {
                            objDesktopModules.AddPortalDesktopModule(int.Parse(objListItem.Value), objDesktopModule.DesktopModuleID);
                        }
                    }
                    // update interfaces
                    UpdateModuleInterfaces(objDesktopModule.BusinessControllerClass);

                    Response.Redirect(EditUrl("desktopmoduleid", objDesktopModule.DesktopModuleID.ToString()), true);
                }
            }
            catch (Exception exc)  //Module failed to load
            {
                Exceptions.ProcessModuleLoadException(this, exc);
            }
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        /// <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);
            }
        }