public AppExportInfoDto GetAppInfo(int appId, int zoneId) { Log.Add($"get app info for app:{appId} and zone:{zoneId}"); var contextZoneId = _zoneMapper.GetZoneId(_siteId); var currentApp = _cmsRuntime.ServiceProvider.Build <ImpExpHelpers>().Init(Log).GetAppAndCheckZoneSwitchPermissions(zoneId, appId, _user, contextZoneId); var zipExport = _zipExport.Init(zoneId, appId, currentApp.Folder, currentApp.PhysicalPath, Log); var cultCount = _zoneMapper .CulturesWithState(_siteId, currentApp.ZoneId) .Count(c => c.Active); var cms = _cmsRuntime.Init(currentApp, true, Log); return(new AppExportInfoDto { Name = currentApp.Name, Guid = currentApp.AppGuid, Version = currentApp.VersionSafe(), EntitiesCount = cms.Entities.All.Count(), LanguagesCount = cultCount, TemplatesCount = cms.Views.GetAll().Count(), HasRazorTemplates = cms.Views.GetRazor().Any(), HasTokenTemplates = cms.Views.GetToken().Any(), FilesCount = zipExport.FileManager.AllFiles.Count(), TransferableFilesCount = zipExport.FileManager.AllTransferableFiles.Count() }); }
public bool SaveDataForVersionControl(int appId, int zoneId, bool includeContentGroups, bool resetAppGuid) { Log.Add($"export for version control z#{zoneId}, a#{appId}, include:{includeContentGroups}, reset:{resetAppGuid}"); SecurityHelpers.ThrowIfNotAdmin(_user); // must happen inside here, as it's opened as a new browser window, so not all headers exist var contextZoneId = _zoneMapper.GetZoneId(_tenantId); var currentApp = ImpExpHelpers.GetAppAndCheckZoneSwitchPermissions(zoneId, appId, _user, contextZoneId, Log); var zipExport = _zipExport.Init(zoneId, appId, currentApp.Folder, currentApp.PhysicalPath, Log); zipExport.ExportForSourceControl(includeContentGroups, resetAppGuid); return(true); }