Exemplo n.º 1
0
        public static int SaveDesktopModule(DesktopModuleInfo desktopModule, bool saveChildren, bool clearCache)
        {
            int desktopModuleID = desktopModule.DesktopModuleID;

            Services.Log.EventLog.EventLogController objEventLog = new Services.Log.EventLog.EventLogController();
            if (desktopModuleID == Null.NullInteger)
            {
                desktopModuleID = dataProvider.AddDesktopModule(desktopModule.PackageID, desktopModule.ModuleName, desktopModule.FolderName, desktopModule.FriendlyName, desktopModule.Description, desktopModule.Version, desktopModule.IsPremium, desktopModule.IsAdmin, desktopModule.BusinessControllerClass, desktopModule.SupportedFeatures,
                                                                desktopModule.CompatibleVersions, desktopModule.Dependencies, desktopModule.Permissions, UserController.GetCurrentUserInfo().UserID);
                objEventLog.AddLog(desktopModule, PortalController.GetCurrentPortalSettings(), UserController.GetCurrentUserInfo().UserID, "", CommonLibrary.Services.Log.EventLog.EventLogController.EventLogType.DESKTOPMODULE_CREATED);
            }
            else
            {
                dataProvider.UpdateDesktopModule(desktopModule.DesktopModuleID, desktopModule.PackageID, desktopModule.ModuleName, desktopModule.FolderName, desktopModule.FriendlyName, desktopModule.Description, desktopModule.Version, desktopModule.IsPremium, desktopModule.IsAdmin, desktopModule.BusinessControllerClass,
                                                 desktopModule.SupportedFeatures, desktopModule.CompatibleVersions, desktopModule.Dependencies, desktopModule.Permissions, UserController.GetCurrentUserInfo().UserID);
                objEventLog.AddLog(desktopModule, PortalController.GetCurrentPortalSettings(), UserController.GetCurrentUserInfo().UserID, "", CommonLibrary.Services.Log.EventLog.EventLogController.EventLogType.DESKTOPMODULE_UPDATED);
            }
            if (saveChildren)
            {
                foreach (ModuleDefinitionInfo definition in desktopModule.ModuleDefinitions.Values)
                {
                    definition.DesktopModuleID = desktopModuleID;
                    ModuleDefinitionInfo moduleDefinition = ModuleDefinitionController.GetModuleDefinitionByFriendlyName(definition.FriendlyName, desktopModuleID);
                    if (moduleDefinition != null)
                    {
                        definition.ModuleDefID = moduleDefinition.ModuleDefID;
                    }
                    ModuleDefinitionController.SaveModuleDefinition(definition, saveChildren, clearCache);
                }
            }
            if (clearCache)
            {
                DataCache.ClearHostCache(true);
            }
            return(desktopModuleID);
        }
        internal static int SaveDesktopModule(DesktopModuleInfo desktopModule, bool saveChildren, bool clearCache, bool saveTerms)
        {
            var desktopModuleID = desktopModule.DesktopModuleID;

            if (desktopModuleID == Null.NullInteger)
            {
                CreateContentItem(desktopModule);
                desktopModuleID = DataProvider.AddDesktopModule(desktopModule.PackageID,
                                                                desktopModule.ModuleName,
                                                                desktopModule.FolderName,
                                                                desktopModule.FriendlyName,
                                                                desktopModule.Description,
                                                                desktopModule.Version,
                                                                desktopModule.IsPremium,
                                                                desktopModule.IsAdmin,
                                                                desktopModule.BusinessControllerClass,
                                                                desktopModule.SupportedFeatures,
                                                                (int)desktopModule.Shareable,
                                                                desktopModule.CompatibleVersions,
                                                                desktopModule.Dependencies,
                                                                desktopModule.Permissions,
                                                                desktopModule.ContentItemId,
                                                                UserController.Instance.GetCurrentUserInfo().UserID,
                                                                desktopModule.AdminPage, desktopModule.HostPage);
                EventLogController.Instance.AddLog(desktopModule, PortalController.Instance.GetCurrentPortalSettings(), UserController.Instance.GetCurrentUserInfo().UserID, "", EventLogController.EventLogType.DESKTOPMODULE_CREATED);
            }
            else
            {
                //Update ContentItem If neccessary
                if (desktopModule.ContentItemId == Null.NullInteger)
                {
                    CreateContentItem(desktopModule);
                }

                DataProvider.UpdateDesktopModule(desktopModule.DesktopModuleID,
                                                 desktopModule.PackageID,
                                                 desktopModule.ModuleName,
                                                 desktopModule.FolderName,
                                                 desktopModule.FriendlyName,
                                                 desktopModule.Description,
                                                 desktopModule.Version,
                                                 desktopModule.IsPremium,
                                                 desktopModule.IsAdmin,
                                                 desktopModule.BusinessControllerClass,
                                                 desktopModule.SupportedFeatures,
                                                 (int)desktopModule.Shareable,
                                                 desktopModule.CompatibleVersions,
                                                 desktopModule.Dependencies,
                                                 desktopModule.Permissions,
                                                 desktopModule.ContentItemId,
                                                 UserController.Instance.GetCurrentUserInfo().UserID,
                                                 desktopModule.AdminPage,
                                                 desktopModule.HostPage);

                //Update Tags
                if (saveTerms)
                {
                    var termController = Util.GetTermController();
                    termController.RemoveTermsFromContent(desktopModule);
                    foreach (var term in desktopModule.Terms)
                    {
                        termController.AddTermToContent(term, desktopModule);
                    }
                }

                EventLogController.Instance.AddLog(desktopModule, PortalController.Instance.GetCurrentPortalSettings(), UserController.Instance.GetCurrentUserInfo().UserID, "", EventLogController.EventLogType.DESKTOPMODULE_UPDATED);
            }
            if (saveChildren)
            {
                foreach (var definition in desktopModule.ModuleDefinitions.Values)
                {
                    definition.DesktopModuleID = desktopModuleID;
                    var moduleDefinition = ModuleDefinitionController.GetModuleDefinitionByDefinitionName(definition.DefinitionName, desktopModuleID);
                    if (moduleDefinition != null)
                    {
                        definition.ModuleDefID = moduleDefinition.ModuleDefID;
                    }
                    ModuleDefinitionController.SaveModuleDefinition(definition, true, clearCache);
                }
            }
            if (clearCache)
            {
                DataCache.ClearHostCache(true);
            }
            return(desktopModuleID);
        }