Exemplo n.º 1
0
        public void UpdateModule(ModuleInfo objModule)
        {
            // update module
            DataProvider.Instance().UpdateModule(objModule.ModuleID, objModule.ModuleTitle, objModule.AllTabs, objModule.Header, objModule.Footer, objModule.StartDate, objModule.EndDate, objModule.InheritViewPermissions, objModule.IsDeleted);

            // update module permissions
            ModulePermissionController objModulePermissionController = new ModulePermissionController();
            ModulePermissionCollection objCurrentModulePermissions;

            objCurrentModulePermissions = objModulePermissionController.GetModulePermissionsCollectionByModuleID(objModule.ModuleID, objModule.TabID);
            if (!objCurrentModulePermissions.CompareTo(objModule.ModulePermissions))
            {
                objModulePermissionController.DeleteModulePermissionsByModuleID(objModule.ModuleID);
                foreach (ModulePermissionInfo objModulePermission in objModule.ModulePermissions)
                {
                    objModulePermission.ModuleID = objModule.ModuleID;
                    if (objModule.InheritViewPermissions && objModulePermission.PermissionKey == "VIEW")
                    {
                        objModulePermissionController.DeleteModulePermission(objModulePermission.ModulePermissionID);
                    }
                    else
                    {
                        if (objModulePermission.AllowAccess)
                        {
                            objModulePermissionController.AddModulePermission(objModulePermission, objModule.TabID);
                        }
                    }
                }
            }

            if (!Null.IsNull(objModule.TabID))
            {
                // update tabmodule
                DataProvider.Instance().UpdateTabModule(objModule.TabID, objModule.ModuleID, objModule.ModuleOrder, objModule.PaneName, objModule.CacheTime, objModule.Alignment, objModule.Color, objModule.Border, objModule.IconFile, (int)objModule.Visibility, objModule.ContainerSrc, objModule.DisplayTitle, objModule.DisplayPrint, objModule.DisplaySyndicate);

                // update module order in pane
                UpdateModuleOrder(objModule.TabID, objModule.ModuleID, objModule.ModuleOrder, objModule.PaneName);

                // set the default module
                if (objModule.IsDefaultModule)
                {
                    PortalSettings.UpdatePortalSetting(objModule.PortalID, "defaultmoduleid", objModule.ModuleID.ToString());
                    PortalSettings.UpdatePortalSetting(objModule.PortalID, "defaulttabid", objModule.TabID.ToString());
                }

                // apply settings to all desktop modules in portal
                if (objModule.AllModules)
                {
                    TabController objTabs = new TabController();
                    foreach (KeyValuePair <int, TabInfo> tabPair in objTabs.GetTabsByPortal(objModule.PortalID))
                    {
                        TabInfo objTab = tabPair.Value;
                        if (!objTab.IsAdminTab)
                        {
                            foreach (KeyValuePair <int, ModuleInfo> modulePair in GetTabModules(objTab.TabID))
                            {
                                ModuleInfo objTargetModule = modulePair.Value;
                                DataProvider.Instance().UpdateTabModule(objTargetModule.TabID, objTargetModule.ModuleID, objTargetModule.ModuleOrder, objTargetModule.PaneName, objModule.CacheTime, objModule.Alignment, objModule.Color, objModule.Border, objModule.IconFile, (int)objModule.Visibility, objModule.ContainerSrc, objModule.DisplayTitle, objModule.DisplayPrint, objModule.DisplaySyndicate);
                            }
                        }
                    }
                }
            }
            ClearCache(objModule.TabID);
        }