Esempio n. 1
0
        public TabVersion RollBackVesion(int tabId, int createdByUserId, int version)
        {
            CheckVersioningEnabled(tabId);

            if (GetUnPublishedVersion(tabId) != null)
            {
                throw new InvalidOperationException(String.Format(Localization.GetString("TabVersionCannotBeRolledBack_UnpublishedVersionExists", Localization.ExceptionsResourceFile), tabId, version));
            }

            var lastTabVersion = _tabVersionController.GetTabVersions(tabId).OrderByDescending(tv => tv.Version).FirstOrDefault();

            if (lastTabVersion == null || lastTabVersion.Version == version)
            {
                throw new InvalidOperationException(String.Format(Localization.GetString("TabVersionCannotBeRolledBack_LastVersion", Localization.ExceptionsResourceFile), tabId, version));
            }

            var publishedDetails = GetVersionModulesDetails(tabId, lastTabVersion.Version).ToArray();

            var rollbackDetails = CopyVersionDetails(GetVersionModulesDetails(tabId, version)).ToArray();
            var newVersion      = CreateNewVersion(tabId, createdByUserId);

            //Save Reset detail
            _tabVersionDetailController.SaveTabVersionDetail(GetResetTabVersionDetail(newVersion), createdByUserId);

            foreach (var rollbackDetail in rollbackDetails)
            {
                rollbackDetail.TabVersionId = newVersion.TabVersionId;
                try
                {
                    rollbackDetail.ModuleVersion = RollBackDetail(tabId, rollbackDetail);
                }
                catch (DnnTabVersionException e)
                {
                    Logger.Error(string.Format("There was a problem making rollbak of the module {0}. Message: {1}.", rollbackDetail.ModuleId, e.Message));
                    continue;
                }
                _tabVersionDetailController.SaveTabVersionDetail(rollbackDetail, createdByUserId);

                //Check if restoring version contains modules to restore
                if (publishedDetails.All(tv => tv.ModuleId != rollbackDetail.ModuleId))
                {
                    RestoreModuleInfo(tabId, rollbackDetail);
                }
                else
                {
                    UpdateModuleOrder(tabId, rollbackDetail);
                }
            }

            //Check if current version contains modules not existing in restoring version
            foreach (var publishedDetail in publishedDetails.Where(publishedDetail => rollbackDetails.All(tvd => tvd.ModuleId != publishedDetail.ModuleId)))
            {
                _moduleController.DeleteTabModule(tabId, publishedDetail.ModuleId, true);
            }

            // Publish Version
            return(PublishVersion(GetCurrentPortalId(), tabId, createdByUserId, newVersion));
        }
Esempio n. 2
0
        public void DeleteTabModule(int pageId, int moduleId)
        {
            var portalSettings = PortalController.Instance.GetCurrentPortalSettings();
            var tab            = _tabController.GetTab(pageId, portalSettings.PortalId);

            if (tab == null)
            {
                throw new PageModuleNotFoundException();
            }

            var tabModule = _moduleController.GetModule(moduleId, pageId, false);

            if (tabModule == null)
            {
                throw new PageModuleNotFoundException();
            }

            if (!TabPermissionController.CanAddContentToPage(tab))
            {
                throw new SecurityException("You do not have permission to delete module on this page");
            }

            _moduleController.DeleteTabModule(pageId, moduleId, true);
            _moduleController.ClearCache(pageId);
        }
Esempio n. 3
0
 private void HardDeleteModule(ModuleInfo module)
 {
     try
     {
         _moduleController.DeleteTabModule(module.TabID, module.ModuleID, false);
     }
     catch (Exception exc)
     {
         Logger.Error(exc);
     }
     //hard-delete Tab Module Instance
 }
Esempio n. 4
0
 private void HardDeleteModule(ModuleInfo module, StringBuilder errors)
 {
     try
     {
         if (ModulePermissionController.CanDeleteModule(module) && module.IsDeleted)
         {
             _moduleController.DeleteTabModule(module.TabID, module.ModuleID, false);
         }
         else
         {
             errors.AppendFormat(!module.IsDeleted ? LocalizeString("ModuleNotSoftDeleted") : LocalizeString("CanNotDeleteModule"), module.ModuleID);
         }
     }
     catch (Exception exc)
     {
         Logger.Error(exc);
     }
     //hard-delete Tab Module Instance
 }