コード例 #1
0
        /// <summary>
        /// LoadCacheProperties loads the Module Definitions Default Cache Time properties
        /// </summary>
        /// <history>
        ///     [cnurse]	4/21/2005   created
        /// </history>
        private void LoadCacheProperties(int ModuleDefId)
        {
            ModuleDefinitionController objModuleDefinitionController = new ModuleDefinitionController();
            ModuleDefinitionInfo       objModuleDefinition           = objModuleDefinitionController.GetModuleDefinition(ModuleDefId);

            txtCacheTime.Text = objModuleDefinition.DefaultCacheTime.ToString();
        }
コード例 #2
0
        /// <inheritdoc cref="IViewManager.SaveModuleNavigationAsync(ModuleNavigationInfo)" />
        public async Task <bool> SaveModuleNavigationAsync(ModuleNavigationInfo moduleNavigation)
        {
            if (moduleNavigation is null)
            {
                return(false);
            }

            ModuleDefinitionInfo moduleDef = await GetModuleDefAsync(moduleNavigation.ModuleDefinitionId);

            if (moduleDef is null)
            {
                return(false);
            }

            ModuleNavigation navigation = moduleNavigation.Id > 0 ?
                                          await _dbContext.KastraModuleNavigations.SingleOrDefaultAsync(mn => mn.Id == moduleNavigation.Id) : null;

            navigation = moduleNavigation.ToModuleNavigation();

            if (navigation.Id > 0)
            {
                _dbContext.KastraModuleNavigations.Update(navigation);
            }
            else
            {
                _dbContext.KastraModuleNavigations.Add(navigation);
            }

            await _dbContext.SaveChangesAsync();

            // Clear cache
            _cacheEngine.ClearCacheContains("Module");

            return(true);
        }
コード例 #3
0
        /// <inheritdoc cref="IViewManager.SaveModuleControlAsync(ModuleControlInfo)" />
        public async Task <bool> SaveModuleControlAsync(ModuleControlInfo moduleControlInfo)
        {
            if (moduleControlInfo is null)
            {
                return(false);
            }

            ModuleControl moduleControl = await _dbContext.KastraModuleControls
                                          .SingleOrDefaultAsync(mc => mc.ModuleControlId == moduleControlInfo.ModuleControlId);

            ModuleDefinitionInfo moduleDef = await GetModuleDefAsync(moduleControlInfo.ModuleDefId);

            if (moduleDef is null)
            {
                return(false);
            }

            moduleControl = moduleControlInfo.ToModuleControl();

            if (moduleControl.ModuleControlId > 0)
            {
                _dbContext.KastraModuleControls.Update(moduleControl);
            }
            else
            {
                _dbContext.KastraModuleControls.Add(moduleControl);
            }

            await _dbContext.SaveChangesAsync();

            // Clear cache
            _cacheEngine.ClearCacheContains("Module");

            return(true);
        }
コード例 #4
0
        /// <inheritdoc cref="IViewManager.SaveModuleDefAsync(ModuleDefinitionInfo)" />
        public async Task <bool> SaveModuleDefAsync(ModuleDefinitionInfo moduleDefinition)
        {
            ModuleDefinition newModuleDefinition;

            if (moduleDefinition is null)
            {
                return(false);
            }

            newModuleDefinition = moduleDefinition.ToModuleDefinition();

            if (newModuleDefinition.ModuleDefId > 0)
            {
                _dbContext.KastraModuleDefinitions.Update(newModuleDefinition);
            }
            else
            {
                _dbContext.KastraModuleDefinitions.Add(newModuleDefinition);
            }

            await _dbContext.SaveChangesAsync();

            // Clear cache
            _cacheEngine.ClearCacheContains("Module");

            return(true);
        }
コード例 #5
0
        protected virtual ModuleDefinitionInfo GetModuleFromNode(int TempModuleDefinitionID, PaFolder Folder, XmlElement DNNModule)
        {
            ModuleDefinitionInfo ModuleDef = new ModuleDefinitionInfo();

            XmlElement friendlyNameElement = (XmlElement)DNNModule.SelectSingleNode("friendlyname");

            if (friendlyNameElement != null)
            {
                ModuleDef.FriendlyName = friendlyNameElement.InnerText.Trim();
            }

            ModuleDef.TempModuleID = TempModuleDefinitionID;
            //We need to ensure that admin order is null for "User" modules

            InstallerInfo.Log.AddInfo(string.Format(MODULES_ControlInfo, ModuleDef.FriendlyName));

            XmlElement ModuleControl;

            foreach (XmlElement tempLoopVar_ModuleControl in DNNModule.SelectNodes("controls/control"))
            {
                ModuleControl = tempLoopVar_ModuleControl;

                Folder.Controls.Add(GetModuleControlFromNode(Folder.Name, ModuleDef.TempModuleID, ModuleControl));
            }

            return(ModuleDef);
        }
コード例 #6
0
        public static ModuleDefinitionModel ToModuleDefinitionModel(ModuleDefinitionInfo moduleDefinitionInfo)
        {
            ModuleDefinitionModel model = new ModuleDefinitionModel();

            model.Id   = moduleDefinitionInfo.ModuleDefId;
            model.Name = moduleDefinitionInfo.Name;

            return(model);
        }
コード例 #7
0
        protected void grdControls_DeleteCommand(object source, DataGridCommandEventArgs e)
        {
            int controlID = Int32.Parse(e.CommandArgument.ToString());

            ModuleControlController.DeleteModuleControl(controlID);

            //Force Module Definition to refresh
            _ModuleDefinition = null;
            BindDefinition();
        }
コード例 #8
0
        /// <summary>
        /// cmdAddDefinition_Click runs when the Add Definition Button is clicked
        /// </summary>
        /// <history>
        ///     [cnurse]	9/28/2004	Updated to reflect design changes for Help, 508 support
        ///                       and localisation
        /// </history>
        protected void cmdAddDefinition_Click(object sender, EventArgs e)
        {
            if (!String.IsNullOrEmpty(txtDefinition.Text))
            {
                ModuleDefinitionInfo objModuleDefinition = new ModuleDefinitionInfo();

                objModuleDefinition.DesktopModuleID = DesktopModuleId;
                objModuleDefinition.FriendlyName    = txtDefinition.Text;

                try
                {
                    objModuleDefinition.DefaultCacheTime = int.Parse(txtCacheTime.Text);
                    if (objModuleDefinition.DefaultCacheTime < 0)
                    {
                        UI.Skins.Skin.AddModuleMessage(this, Localization.GetString("UpdateCache.ErrorMessage", this.LocalResourceFile), ModuleMessageType.RedError);
                        return;
                    }
                }
                catch
                {
                    UI.Skins.Skin.AddModuleMessage(this, Localization.GetString("UpdateCache.ErrorMessage", this.LocalResourceFile), ModuleMessageType.RedError);
                    return;
                }

                ModuleDefinitionController objModuleDefinitions = new ModuleDefinitionController();

                int ModuleDefId;
                try
                {
                    ModuleDefId = objModuleDefinitions.AddModuleDefinition(objModuleDefinition);
                }
                catch
                {
                    UI.Skins.Skin.AddModuleMessage(this, Localization.GetString("AddDefinition.ErrorMessage", this.LocalResourceFile), ModuleMessageType.RedError);
                    return;
                }

                LoadDefinitions();

                if (ModuleDefId > -1)
                {
                    //Set the Combo
                    cboDefinitions.SelectedIndex = -1;
                    cboDefinitions.Items.FindByValue(ModuleDefId.ToString()).Selected = true;
                    LoadCacheProperties(ModuleDefId);
                    LoadControls(ModuleDefId);
                    //Clear the Text Box
                    txtDefinition.Text = "";
                }
            }
            else
            {
                UI.Skins.Skin.AddModuleMessage(this, Localization.GetString("MissingDefinition.ErrorMessage", this.LocalResourceFile), ModuleMessageType.RedError);
            }
        }
コード例 #9
0
 private void ReadModuleDefinitions(XmlReader reader)
 {
     reader.ReadStartElement("moduleDefinitions");
     do
     {
         reader.ReadStartElement("moduleDefinition");
         ModuleDefinitionInfo moduleDefinition = new ModuleDefinitionInfo();
         moduleDefinition.ReadXml(reader);
         ModuleDefinitions.Add(moduleDefinition.FriendlyName, moduleDefinition);
     } while (reader.ReadToNextSibling("moduleDefinition"));
 }
コード例 #10
0
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// The ReadManifest method reads the manifest file for the Module compoent.
        /// </summary>
        /// -----------------------------------------------------------------------------
        public override void ReadManifest(XPathNavigator manifestNav)
        {
            // Load the Desktop Module from the manifest
            this._desktopModule = CBO.DeserializeObject <DesktopModuleInfo>(new StringReader(manifestNav.InnerXml));

            // Allow a <component type="Module"> (i.e. a DesktopModule) to have its own friendlyname / description.
            // This allows multiple DesktopModules in one Package, allowing large MVC packages which share one assembly
            // but have many functions.
            if (this._desktopModule.FriendlyName == null || this._desktopModule.FriendlyName.Trim().Length == 0)
            {
                this._desktopModule.FriendlyName = this.Package.FriendlyName;
            }

            if (this._desktopModule.Description == null || this._desktopModule.Description.Trim().Length == 0)
            {
                this._desktopModule.Description = this.Package.Description;
            }

            this._desktopModule.Version            = Globals.FormatVersion(this.Package.Version, "00", 4, ".");
            this._desktopModule.CompatibleVersions = Null.NullString;
            this._desktopModule.Dependencies       = Null.NullString;
            this._desktopModule.Permissions        = Null.NullString;
            if (string.IsNullOrEmpty(this._desktopModule.BusinessControllerClass))
            {
                this._desktopModule.SupportedFeatures = 0;
            }

            this._eventMessage = this.ReadEventMessageNode(manifestNav);

            // Load permissions (to add)
            foreach (XPathNavigator moduleDefinitionNav in manifestNav.Select("desktopModule/moduleDefinitions/moduleDefinition"))
            {
                string friendlyName = Util.ReadElement(moduleDefinitionNav, "friendlyName");
                foreach (XPathNavigator permissionNav in moduleDefinitionNav.Select("permissions/permission"))
                {
                    var permission = new PermissionInfo();
                    permission.PermissionCode = Util.ReadAttribute(permissionNav, "code");
                    permission.PermissionKey  = Util.ReadAttribute(permissionNav, "key");
                    permission.PermissionName = Util.ReadAttribute(permissionNav, "name");
                    ModuleDefinitionInfo moduleDefinition = this._desktopModule.ModuleDefinitions[friendlyName];
                    if (moduleDefinition != null)
                    {
                        moduleDefinition.Permissions.Add(permission.PermissionKey, permission);
                    }
                }
            }

            if (this.Log.Valid)
            {
                this.Log.AddInfo(Util.MODULE_ReadSuccess);
            }
        }
コード例 #11
0
        public override void ReadManifest(XPathNavigator manifestNav)
        {
            DesktopModule = CBO.DeserializeObject <DesktopModuleInfo>(new StringReader(manifestNav.InnerXml));
            DesktopModule.FriendlyName = Package.FriendlyName;
            DesktopModule.Description  = Package.Description;
            DesktopModule.Version      = Globals.FormatVersion(Package.Version);
            //DesktopModule.IsPremium = false;
            //DesktopModule.IsAdmin = false;
            DesktopModule.CompatibleVersions = Null.NullString;
            DesktopModule.Dependencies       = Null.NullString;
            DesktopModule.Permissions        = Null.NullString;
            if (string.IsNullOrEmpty(DesktopModule.BusinessControllerClass))
            {
                DesktopModule.SupportedFeatures = 0;
            }
            XPathNavigator eventMessageNav = manifestNav.SelectSingleNode("eventMessage");

            if (eventMessageNav != null)
            {
                EventMessage                  = new EventQueue.EventMessage();
                EventMessage.Priority         = MessagePriority.High;
                EventMessage.ExpirationDate   = DateTime.Now.AddYears(-1);
                EventMessage.SentDate         = System.DateTime.Now;
                EventMessage.Body             = "";
                EventMessage.ProcessorType    = Util.ReadElement(eventMessageNav, "processorType", Log, Util.EVENTMESSAGE_TypeMissing);
                EventMessage.ProcessorCommand = Util.ReadElement(eventMessageNav, "processorCommand", Log, Util.EVENTMESSAGE_CommandMissing);
                foreach (XPathNavigator attributeNav in eventMessageNav.Select("attributes/*"))
                {
                    EventMessage.Attributes.Add(attributeNav.Name, attributeNav.Value);
                }
            }
            foreach (XPathNavigator moduleDefinitionNav in manifestNav.Select("desktopModule/moduleDefinitions/moduleDefinition"))
            {
                string friendlyName = Util.ReadElement(moduleDefinitionNav, "friendlyName");
                foreach (XPathNavigator permissionNav in moduleDefinitionNav.Select("permissions/permission"))
                {
                    PermissionInfo permission = new PermissionInfo();
                    permission.PermissionCode = Util.ReadAttribute(permissionNav, "code");
                    permission.PermissionKey  = Util.ReadAttribute(permissionNav, "key");
                    permission.PermissionName = Util.ReadAttribute(permissionNav, "name");
                    ModuleDefinitionInfo moduleDefinition = DesktopModule.ModuleDefinitions[friendlyName];
                    if (moduleDefinition != null)
                    {
                        moduleDefinition.Permissions.Add(permission.PermissionKey, permission);
                    }
                }
            }
            if (Log.Valid)
            {
                Log.AddInfo(Util.MODULE_ReadSuccess);
            }
        }
コード例 #12
0
        private void BindDefinition()
        {
            if (IsAddDefinitionMode)
            {
                var definition = new ModuleDefinitionInfo {
                    DesktopModuleID = DesktopModule.DesktopModuleID, ModuleDefID = Null.NullInteger
                };
                definitionsEditor.DataSource = definition;
                definitionsEditor.DataBind();

                cmdDeleteDefinition.Visible = false;
                cmdUpdateDefinition.Text    = Localization.GetString("cmdCreateDefinition", LocalResourceFile);
                cmdCancelDefinition.Visible = true;
                pnlDefinition.Visible       = true;
                pnlControls.Visible         = false;
                definitionSelectRow.Visible = false;

                definitionName.Visible        = true;
                definitionNameLiteral.Visible = false;
            }
            else
            {
                if (ModuleDefinition != null && ModuleDefinition.DesktopModuleID == DesktopModule.DesktopModuleID)
                {
                    definitionsEditor.DataSource = ModuleDefinition;
                    definitionsEditor.DataBind();

                    cmdDeleteDefinition.Visible = true;
                    cmdUpdateDefinition.Text    = Localization.GetString("cmdUpdateDefinition", LocalResourceFile);

                    if (!Page.IsPostBack)
                    {
                        Localization.LocalizeDataGrid(ref grdControls, LocalResourceFile);
                    }
                    grdControls.DataSource = ModuleDefinition.ModuleControls.Values;
                    grdControls.DataBind();

                    pnlDefinition.Visible       = true;
                    pnlControls.Visible         = true;
                    definitionSelectRow.Visible = true;

                    definitionName.Visible        = false;
                    definitionNameLiteral.Visible = true;

                    cmdAddControl.NavigateUrl = ModuleContext.EditUrl("ModuleControlID", "-1", "EditControl", "packageId=" + PackageID, "moduledefid=" + ModuleDefinition.ModuleDefID);
                }
                else
                {
                    pnlDefinition.Visible = false;
                }
            }
        }
コード例 #13
0
        public ModuleDefinitionDto(ModuleDefinitionInfo definition)
        {
            Id = definition.ModuleDefID;
            DesktopModuleId = definition.DesktopModuleID;
            Name            = definition.DefinitionName;
            FriendlyName    = definition.FriendlyName;
            CacheTime       = definition.DefaultCacheTime;

            foreach (var moduleControlInfo in definition.ModuleControls.Values)
            {
                Controls.Add(new ModuleControlDto(moduleControlInfo));
            }
        }
コード例 #14
0
        protected void cmdAddDefinition_Click(object sender, EventArgs e)
        {
            IsAddDefinitionMode = true;
            ModuleDefinitionID  = Null.NullInteger;
            _ModuleDefinition   = null;

            ////empty definition form's content
            definitionsEditor.Items.ForEach(i =>
            {
                i.Value = null;
            });

            BindDefinition();
        }
コード例 #15
0
        public string UpgradeModule(string version)
        {
            try
            {
                switch (version)
                {
                case "07.01.00":
                    ModuleDefinitionInfo mDef = ModuleDefinitionController.GetModuleDefinitionByFriendlyName("Digital Asset Management");

                    // Add tab to Admin Menu
                    if (mDef != null)
                    {
                        var hostPage = Upgrade.AddHostPage(
                            "File Management",
                            "Manage assets.",
                            "~/Icons/Sigma/Files_16X16_Standard.png",
                            "~/Icons/Sigma/Files_32X32_Standard.png",
                            true);

                        // Add module to page
                        Upgrade.AddModuleToPage(hostPage, mDef.ModuleDefID, "File Management", "~/Icons/Sigma/Files_32X32_Standard.png", true);

                        Upgrade.AddAdminPages(
                            "File Management",
                            "Manage assets within the portal",
                            "~/Icons/Sigma/Files_16X16_Standard.png",
                            "~/Icons/Sigma/Files_32X32_Standard.png",
                            true,
                            mDef.ModuleDefID,
                            "File Management",
                            "~/Icons/Sigma/Files_16X16_Standard.png",
                            true);
                    }

                    // Remove Host File Manager page
                    Upgrade.RemoveHostPage("File Manager");

                    // Remove Admin File Manager Pages
                    Upgrade.RemoveAdminPages("//Admin//FileManager");

                    break;
                }

                return("Success");
            }
            catch (Exception)
            {
                return("Failed");
            }
        }
コード例 #16
0
        protected override ModuleDefinitionInfo GetModuleFromNode(int TempModuleDefinitionID, PaFolder Folder, XmlElement DNNModule)
        {
            ModuleDefinitionInfo ModuleDef = base.GetModuleFromNode(TempModuleDefinitionID, Folder, DNNModule);

            if (ModuleDef != null)
            {
                XmlElement cacheElement = (XmlElement)DNNModule.SelectSingleNode("cachetime");
                if (cacheElement != null)
                {
                    ModuleDef.DefaultCacheTime = Convert.ToInt32(cacheElement.InnerText.Trim());
                }
            }

            return(ModuleDef);
        }
コード例 #17
0
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// ExportModule implements the IPortable ExportModule Interface
        /// </summary>
        /// <param name="ModuleID">The Id of the module to be exported</param>
        /// -----------------------------------------------------------------------------
        //public string ExportModule(int ModuleID)
        //{
        //string strXML = "";

        //List<OpenBlocksInfo> colOpenBlockss = GetOpenBlockss(ModuleID);
        //if (colOpenBlockss.Count != 0)
        //{
        //    strXML += "<OpenBlockss>";

        //    foreach (OpenBlocksInfo objOpenBlocks in colOpenBlockss)
        //    {
        //        strXML += "<OpenBlocks>";
        //        strXML += "<content>" + DotNetNuke.Common.Utilities.XmlUtils.XMLEncode(objOpenBlocks.Content) + "</content>";
        //        strXML += "</OpenBlocks>";
        //    }
        //    strXML += "</OpenBlockss>";
        //}

        //return strXML;

        //	throw new System.NotImplementedException("The method or operation is not implemented.");
        //}

        /// -----------------------------------------------------------------------------
        /// <summary>
        /// ImportModule implements the IPortable ImportModule Interface
        /// </summary>
        /// <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>
        /// -----------------------------------------------------------------------------
        //public void ImportModule(int ModuleID, string Content, string Version, int UserID)
        //{
        //XmlNode xmlOpenBlockss = DotNetNuke.Common.Globals.GetContent(Content, "OpenBlockss");
        //foreach (XmlNode xmlOpenBlocks in xmlOpenBlockss.SelectNodes("OpenBlocks"))
        //{
        //    OpenBlocksInfo objOpenBlocks = new OpenBlocksInfo();
        //    objOpenBlocks.ModuleId = ModuleID;
        //    objOpenBlocks.Content = xmlOpenBlocks.SelectSingleNode("content").InnerText;
        //    objOpenBlocks.CreatedByUser = UserID;
        //    AddOpenBlocks(objOpenBlocks);
        //}

        //	throw new System.NotImplementedException("The method or operation is not implemented.");
        //}

        /// -----------------------------------------------------------------------------
        /// <summary>
        /// GetSearchItems implements the ISearchable Interface
        /// </summary>
        /// <param name="ModInfo">The ModuleInfo for the module to be Indexed</param>
        /// -----------------------------------------------------------------------------
        //public DotNetNuke.Services.Search.SearchItemInfoCollection GetSearchItems(DotNetNuke.Entities.Modules.ModuleInfo ModInfo)
        //{
        //SearchItemInfoCollection SearchItemCollection = new SearchItemInfoCollection();

        //List<OpenBlocksInfo> colOpenBlockss = GetOpenBlockss(ModInfo.ModuleID);

        //foreach (OpenBlocksInfo objOpenBlocks in colOpenBlockss)
        //{
        //    SearchItemInfo SearchItem = new SearchItemInfo(ModInfo.ModuleTitle, objOpenBlocks.Content, objOpenBlocks.CreatedByUser, objOpenBlocks.CreatedDate, ModInfo.ModuleID, objOpenBlocks.ItemId.ToString(), objOpenBlocks.Content, "ItemId=" + objOpenBlocks.ItemId.ToString());
        //    SearchItemCollection.Add(SearchItem);
        //}

        //return SearchItemCollection;

        //	throw new System.NotImplementedException("The method or operation is not implemented.");
        //}

        /// -----------------------------------------------------------------------------
        /// <summary>
        /// UpgradeModule implements the IUpgradeable Interface
        /// </summary>
        /// <param name="Version">The current version of the module</param>
        /// -----------------------------------------------------------------------------
        public string UpgradeModule(string Version)
        {
            string result = "";

            try
            {
                switch (Version)
                {
                case "00.00.01":


                    ModuleDefinitionInfo mDef = ModuleDefinitionController.GetModuleDefinitionByFriendlyName("OpenTemplateStudio");

                    //Add tab to Admin Menu
                    if (mDef != null)
                    {
                        var hostPage = Upgrade.AddHostPage("Template Studio",
                                                           "Open Template Studio",
                                                           "~/DesktopModules/OpenBlocks/Files_16X16_Standard.png",
                                                           "~/Icons/Sigma/Files_32X32_Standard.png",
                                                           true);

                        //Add module to page
                        Upgrade.AddModuleToPage(hostPage, mDef.ModuleDefID, "Open Template Studio", "~/Icons/Sigma/Files_32X32_Standard.png", true);

                        /*
                         * Upgrade.AddAdminPages("File Management",
                         *                   "Manage assets within the portal",
                         *                   "~/Icons/Sigma/Files_16X16_Standard.png",
                         *                   "~/Icons/Sigma/Files_32X32_Standard.png",
                         *                   true,
                         *                   mDef.ModuleDefID,
                         *                   "File Management",
                         *                   "~/Icons/Sigma/Files_16X16_Standard.png",
                         *                   true);
                         */
                        result = hostPage == null ? "host page null" : "host page created";
                    }

                    break;
                }
                return("Success : " + result);
            }
            catch (Exception)
            {
                return("Failed");
            }
        }
コード例 #18
0
        private ModuleDefinitionInfo ImportManifest(string manifest)
        {
            ModuleDefinitionInfo moduleDefinition = null;

            try
            {
                var _Installer = new Installer(manifest, Request.MapPath("."), true);

                if (_Installer.IsValid)
                {
                    //Reset Log
                    _Installer.InstallerInfo.Log.Logs.Clear();

                    //Install
                    _Installer.Install();

                    if (_Installer.IsValid)
                    {
                        DesktopModuleInfo desktopModule = DesktopModuleController.GetDesktopModuleByPackageID(_Installer.InstallerInfo.PackageID);
                        if (desktopModule != null && desktopModule.ModuleDefinitions.Count > 0)
                        {
                            foreach (KeyValuePair <string, ModuleDefinitionInfo> kvp in desktopModule.ModuleDefinitions)
                            {
                                moduleDefinition = kvp.Value;
                                break;
                            }
                        }
                    }
                    else
                    {
                        UI.Skins.Skin.AddModuleMessage(this, Localization.GetString("InstallError.Text", LocalResourceFile), ModuleMessage.ModuleMessageType.RedError);
                        phInstallLogs.Controls.Add(_Installer.InstallerInfo.Log.GetLogsTable());
                    }
                }
                else
                {
                    UI.Skins.Skin.AddModuleMessage(this, Localization.GetString("InstallError.Text", LocalResourceFile), ModuleMessage.ModuleMessageType.RedError);
                    phInstallLogs.Controls.Add(_Installer.InstallerInfo.Log.GetLogsTable());
                }
            }
            catch (Exception exc)
            {
                Exceptions.LogException(exc);
                UI.Skins.Skin.AddModuleMessage(this, Localization.GetString("ImportControl.ErrorMessage", LocalResourceFile), ModuleMessage.ModuleMessageType.RedError);
            }

            return(moduleDefinition);
        }
コード例 #19
0
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// ExportModule implements the IPortable ExportModule Interface
        /// </summary>
        /// <param name="ModuleID">The Id of the module to be exported</param>
        /// -----------------------------------------------------------------------------
        //public string ExportModule(int ModuleID)
        //{
        //string strXML = "";

        //List<OpenBlocksInfo> colOpenBlockss = GetOpenBlockss(ModuleID);
        //if (colOpenBlockss.Count != 0)
        //{
        //    strXML += "<OpenBlockss>";

        //    foreach (OpenBlocksInfo objOpenBlocks in colOpenBlockss)
        //    {
        //        strXML += "<OpenBlocks>";
        //        strXML += "<content>" + DotNetNuke.Common.Utilities.XmlUtils.XMLEncode(objOpenBlocks.Content) + "</content>";
        //        strXML += "</OpenBlocks>";
        //    }
        //    strXML += "</OpenBlockss>";
        //}

        //return strXML;

        //	throw new System.NotImplementedException("The method or operation is not implemented.");
        //}

        /// -----------------------------------------------------------------------------
        /// <summary>
        /// ImportModule implements the IPortable ImportModule Interface
        /// </summary>
        /// <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>
        /// -----------------------------------------------------------------------------
        //public void ImportModule(int ModuleID, string Content, string Version, int UserID)
        //{
        //XmlNode xmlOpenBlockss = DotNetNuke.Common.Globals.GetContent(Content, "OpenBlockss");
        //foreach (XmlNode xmlOpenBlocks in xmlOpenBlockss.SelectNodes("OpenBlocks"))
        //{
        //    OpenBlocksInfo objOpenBlocks = new OpenBlocksInfo();
        //    objOpenBlocks.ModuleId = ModuleID;
        //    objOpenBlocks.Content = xmlOpenBlocks.SelectSingleNode("content").InnerText;
        //    objOpenBlocks.CreatedByUser = UserID;
        //    AddOpenBlocks(objOpenBlocks);
        //}

        //	throw new System.NotImplementedException("The method or operation is not implemented.");
        //}

        /// -----------------------------------------------------------------------------
        /// <summary>
        /// GetSearchItems implements the ISearchable Interface
        /// </summary>
        /// <param name="ModInfo">The ModuleInfo for the module to be Indexed</param>
        /// -----------------------------------------------------------------------------
        //public DotNetNuke.Services.Search.SearchItemInfoCollection GetSearchItems(DotNetNuke.Entities.Modules.ModuleInfo ModInfo)
        //{
        //SearchItemInfoCollection SearchItemCollection = new SearchItemInfoCollection();

        //List<OpenBlocksInfo> colOpenBlockss = GetOpenBlockss(ModInfo.ModuleID);

        //foreach (OpenBlocksInfo objOpenBlocks in colOpenBlockss)
        //{
        //    SearchItemInfo SearchItem = new SearchItemInfo(ModInfo.ModuleTitle, objOpenBlocks.Content, objOpenBlocks.CreatedByUser, objOpenBlocks.CreatedDate, ModInfo.ModuleID, objOpenBlocks.ItemId.ToString(), objOpenBlocks.Content, "ItemId=" + objOpenBlocks.ItemId.ToString());
        //    SearchItemCollection.Add(SearchItem);
        //}

        //return SearchItemCollection;

        //	throw new System.NotImplementedException("The method or operation is not implemented.");
        //}

        /// -----------------------------------------------------------------------------
        /// <summary>
        /// UpgradeModule implements the IUpgradeable Interface
        /// </summary>
        /// <param name="Version">The current version of the module</param>
        /// -----------------------------------------------------------------------------
        public string UpgradeModule(string Version)
        {
            string result = "";

            try
            {
                switch (Version)
                {
                case "00.00.01":
                    ModuleDefinitionInfo mDef = ModuleDefinitionController.GetModuleDefinitionByFriendlyName("OpenBlocks");

                    //Add tab to Admin Menu
                    if (mDef != null)
                    {
                        /*
                         * var hostPage = Upgrade.AddHostPage("Open Blocks",
                         *                              "Open Blocks",
                         *                              "~/Icons/Sigma/Software_16X16_Standard.png",
                         *                              "~/Icons/Sigma/Software_32X32_Standard.png",
                         *                              true);
                         *
                         * //Add module to page
                         * Upgrade.AddModuleToPage(hostPage, mDef.ModuleDefID, "Open Blocks", "~/Icons/Sigma/Software_32X32_Standard.png", true);
                         */

                        AddAdminPages("Blocks",
                                      "Manage resuable blocks of content",
                                      "~/Icons/Sigma/Software_16X16_Standard.png",
                                      "~/Icons/Sigma/Software_32X32_Standard.png",
                                      true,
                                      mDef.ModuleDefID,
                                      "Open Blocks",
                                      "~/Icons/Sigma/Software_16X16_Standard.png",
                                      true);

                        //result = hostPage == null ? "hostpage null" : "hostpage created";
                    }


                    break;
                }
                return("Success " + result);
            }
            catch (Exception)
            {
                return("Failed");
            }
        }
コード例 #20
0
        protected void cboDefinitions_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (!IsAddDefinitionMode)
            {
                ModuleDefinitionID = int.Parse(cboDefinitions.SelectedValue);
                //Force Module Definition to refresh
                _ModuleDefinition = null;

                //empty definition form's content
                definitionsEditor.Items.ForEach(i =>
                {
                    i.Value = null;
                });
                BindDefinition();
            }
        }
コード例 #21
0
 public static void SoftDeleteModule(int PortalId, string ModuleFriendlyName)
 {
     try
     {
         using (VanjaroRepo vrepo = new VanjaroRepo())
         {
             ModuleDefinitionInfo moduleDefinitionInfo = ModuleDefinitionController.GetModuleDefinitionByFriendlyName(ModuleFriendlyName);
             System.Collections.Generic.List <ModuleSettings> moduleInfo = vrepo.Fetch <ModuleSettings>("Select T.PortalID,Tabm.TabID,Tabm.ModuleID,Tabm.PaneName,Tabm.IsDeleted from TabModules Tabm inner join Tabs T On Tabm.TabID = t.TabID Where PortalID=@0 AND ModuleTitle= @1", PortalId, ModuleFriendlyName);
             foreach (ModuleSettings ModuleSettings in moduleInfo)
             {
                 ModuleController.Instance.DeleteTabModule(ModuleSettings.TabID, ModuleSettings.ModuleID, true);
             }
         }
     }
     catch (Exception) { }
 }
コード例 #22
0
        private int GetModuleDefID(string ModuleName)
        {
            try
            {
                DesktopModuleInfo    desktopInfo = DesktopModuleController.GetDesktopModuleByModuleName(ModuleName, PortalController.GetCurrentPortalSettings().PortalId);
                ModuleDefinitionInfo modDefInfo  = ModuleDefinitionController.GetModuleDefinitionByFriendlyName(ModuleName, desktopInfo.DesktopModuleID);

                return(modDefInfo.ModuleDefID);
            }
            catch
            {
                // WStrohl:
                // do nothing - an expected nullreference exception should happen here if the module is not going through the expected upgrade
                return(Null.NullInteger);
            }
        }
コード例 #23
0
        static ModuleDefinitionInfo GetModuleDefinition(XmlNode nodeModule)
        {
            ModuleDefinitionInfo objModuleDefinition = null;

            // Templates prior to v4.3.5 only have the <definition> node to define the Module Type
            // This <definition> node was populated with the DesktopModuleInfo.ModuleName property
            // Thus there is no mechanism to determine to which module definition the module belongs.
            //
            // Template from v4.3.5 on also have the <moduledefinition> element that is populated
            // with the ModuleDefinitionInfo.FriendlyName.  Therefore the module Instance identifies
            // which Module Definition it belongs to.

            //Get the DesktopModule defined by the <definition> element
            var objDesktopModule =
                DesktopModuleController.GetDesktopModuleByModuleName(
                    XmlUtils.GetNodeValue(nodeModule, "definition", ""), Null.NullInteger);

            if (objDesktopModule != null)
            {
                //Get the moduleDefinition from the <moduledefinition> element
                var friendlyName = XmlUtils.GetNodeValue(nodeModule, "moduledefinition", "");

                if (string.IsNullOrEmpty(friendlyName))
                {
                    //Module is pre 4.3.5 so get the first Module Definition (at least it won't throw an error then)
                    var moduleDefinitions =
                        ModuleDefinitionController.GetModuleDefinitionsByDesktopModuleID(
                            objDesktopModule.DesktopModuleID).Values;
                    foreach (
                        var moduleDefinition in
                        moduleDefinitions)
                    {
                        objModuleDefinition = moduleDefinition;
                        break;
                    }
                }
                else
                {
                    //Module is 4.3.5 or later so get the Module Definition by its friendly name
                    objModuleDefinition = ModuleDefinitionController.GetModuleDefinitionByFriendlyName(friendlyName,
                                                                                                       objDesktopModule.
                                                                                                       DesktopModuleID);
                }
            }

            return(objModuleDefinition);
        }
コード例 #24
0
        private ModuleDefinitionInfo ImportManifest()
        {
            ModuleDefinitionInfo moduleDefinition = null;

            try
            {
                var folder    = PathUtils.Instance.RemoveTrailingSlash(GetSourceFolder());
                var manifest  = Server.MapPath("~/DesktopModules/" + folder + "/" + cboFile.SelectedValue);
                var installer = new Installer(manifest, Request.MapPath("."), true);

                if (installer.IsValid)
                {
                    installer.InstallerInfo.Log.Logs.Clear();
                    installer.Install();

                    if (installer.IsValid)
                    {
                        var desktopModule = DesktopModuleController.GetDesktopModuleByPackageID(installer.InstallerInfo.PackageID);
                        if (desktopModule != null && desktopModule.ModuleDefinitions.Count > 0)
                        {
                            foreach (var kvp in desktopModule.ModuleDefinitions)
                            {
                                moduleDefinition = kvp.Value;
                                break;                                 // TODO: might not be correct. Was : Exit For
                            }
                        }
                    }
                    else
                    {
                        UI.Skins.Skin.AddModuleMessage(this, Localization.GetString("InstallError.Text", LocalResourceFile), UI.Skins.Controls.ModuleMessage.ModuleMessageType.RedError);
                        phInstallLogs.Controls.Add(installer.InstallerInfo.Log.GetLogsTable());
                    }
                }
                else
                {
                    UI.Skins.Skin.AddModuleMessage(this, Localization.GetString("InstallError.Text", LocalResourceFile), UI.Skins.Controls.ModuleMessage.ModuleMessageType.RedError);
                    phInstallLogs.Controls.Add(installer.InstallerInfo.Log.GetLogsTable());
                }
            }
            catch (Exception exc)
            {
                Exceptions.LogException(exc);
                UI.Skins.Skin.AddModuleMessage(this, Localization.GetString("ImportControl.ErrorMessage", LocalResourceFile), UI.Skins.Controls.ModuleMessage.ModuleMessageType.RedError);
            }

            return(moduleDefinition);
        }
コード例 #25
0
ファイル: DesktopModuleInfo.cs プロジェクト: misterPaul0/Curt
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// Reads a Module Definitions from an XmlReader
        /// </summary>
        /// <param name="reader">The XmlReader to use</param>
        /// <history>
        ///     [cnurse]	01/17/2008   Created
        /// </history>
        /// -----------------------------------------------------------------------------
        private void ReadModuleDefinitions(XmlReader reader)
        {
            reader.ReadStartElement("moduleDefinitions");
            do
            {
                reader.ReadStartElement("moduleDefinition");

                //Create new ModuleDefinition object
                var moduleDefinition = new ModuleDefinitionInfo();

                //Load it from the Xml
                moduleDefinition.ReadXml(reader);

                //Add to the collection
                ModuleDefinitions.Add(moduleDefinition.FriendlyName, moduleDefinition);
            } while (reader.ReadToNextSibling("moduleDefinition"));
        }
コード例 #26
0
        private void ProcessModules(XPathNavigator moduleNav, string moduleFolder)
        {
            ModuleDefinitionInfo definition = new ModuleDefinitionInfo();

            definition.FriendlyName = Util.ReadElement(moduleNav, "friendlyname");
            string cacheTime = Util.ReadElement(moduleNav, "cachetime");

            if (!string.IsNullOrEmpty(cacheTime))
            {
                definition.DefaultCacheTime = int.Parse(cacheTime);
            }
            foreach (XPathNavigator controlNav in moduleNav.Select("controls/control"))
            {
                ProcessControls(controlNav, moduleFolder, definition);
            }
            DesktopModule.ModuleDefinitions[definition.FriendlyName] = definition;
        }
        /// <summary>
        /// Convert ModuleDefinitionInfo to ModuleDefinition.
        /// </summary>
        /// <param name="moduleDefinitionInfo">Module definition info</param>
        /// <returns>Module definition</returns>
        public static ModuleDefinition ToModuleDefinition(this ModuleDefinitionInfo moduleDefinitionInfo)
        {
            if (moduleDefinitionInfo is null)
            {
                return(null);
            }

            return(new ModuleDefinition()
            {
                ModuleDefId = moduleDefinitionInfo.ModuleDefId,
                KeyName = moduleDefinitionInfo.KeyName,
                Name = moduleDefinitionInfo.Name,
                Path = moduleDefinitionInfo.Path,
                Namespace = moduleDefinitionInfo.Namespace,
                Version = moduleDefinitionInfo.Version
            });
        }
コード例 #28
0
        protected void cmdDeleteDefinition_Click(object sender, EventArgs e)
        {
            var objModuleDefinitions = new ModuleDefinitionController();

            objModuleDefinitions.DeleteModuleDefinition(ModuleDefinitionID);

            //Force Definitions list to refresh by rebinding DesktopModule
            ModuleDefinitionID = Null.NullInteger;
            _ModuleDefinition  = null;
            _DesktopModule     = null;

            //empty definition form's content
            definitionsEditor.Items.ForEach(i =>
            {
                i.Value = null;
            });
            BindDesktopModule(true);
        }
コード例 #29
0
            public static void AddUpdateLoginModule(int TabID, int PortalId)
            {
                try
                {
                    using (VanjaroRepo vrepo = new VanjaroRepo())
                    {
                        LoginModule          loginModule          = null;
                        ModuleDefinitionInfo moduleDefinitionInfo = ModuleDefinitionController.GetModuleDefinitionByFriendlyName(Components.Constants.AccountLogin);
                        System.Collections.Generic.List <LoginModule> moduleInfo = vrepo.Fetch <LoginModule>("Select T.PortalID,Tabm.TabID,Tabm.ModuleID,Tabm.PaneName,Tabm.IsDeleted from TabModules Tabm inner join Tabs T On Tabm.TabID = t.TabID Where PortalID=@0 AND ModuleTitle= @1", PortalId, Components.Constants.AccountLogin);
                        foreach (LoginModule d in moduleInfo)
                        {
                            loginModule = d;
                        }

                        if (loginModule == null)
                        {
                            ModuleInfo module = new ModuleInfo
                            {
                                PortalID               = PortalId,
                                TabID                  = TabID,
                                ModuleOrder            = 1,
                                ModuleTitle            = moduleDefinitionInfo.FriendlyName,
                                PaneName               = "ContentPane",
                                ModuleDefID            = moduleDefinitionInfo.ModuleDefID,
                                CacheTime              = moduleDefinitionInfo.DefaultCacheTime,
                                InheritViewPermissions = true,
                                AllTabs                = false
                            };
                            int ModuleID = ModuleController.Instance.AddModule(module);
                            ModuleController.Instance.DeleteTabModule(TabID, ModuleID, true);
                        }
                        else
                        {
                            ModuleController.Instance.MoveModule(loginModule.ModuleID, loginModule.TabID, TabID, loginModule.PaneName);
                            if (!loginModule.IsDeleted)
                            {
                                ModuleController.Instance.DeleteTabModule(TabID, loginModule.ModuleID, true);
                            }
                        }
                    }
                }
                catch (Exception exc) { Exceptions.LogException(exc); }
            }
コード例 #30
0
        private int GetModuleDefinitionID()
        {
            // get desktop module
            DesktopModuleInfo desktopModule = DesktopModuleController.GetDesktopModuleByModuleName("DotNetNuke.RadEditorProvider", Null.NullInteger);

            if (desktopModule == null)
            {
                return(-1);
            }

            //get module definition
            ModuleDefinitionInfo moduleDefinition = ModuleDefinitionController.GetModuleDefinitionByFriendlyName("RadEditor Manager", desktopModule.DesktopModuleID);

            if (moduleDefinition == null)
            {
                return(-1);
            }

            return(moduleDefinition.ModuleDefID);
        }