public ActionResult ExportSite(ConfigurationViewModel model) { if (model.LocalSelectedSiteName.IsNullOrEmpty()) { model = GetConfigurationViewModel(); ModelState.AddModelError(nameof(model.LocalSelectedSiteName), "Site is required."); return(View("Index", model)); } var site = SiteDefinitionRepository.List() .FirstOrDefault(_ => _.Name.Equals(model.LocalSelectedSiteName)); if (site == null) { model = GetConfigurationViewModel(); ModelState.AddModelError(nameof(model.LocalSelectedSiteName), "Site is required."); return(View("Index", model)); } if (model.SiteExportLocation.Equals("Remote", StringComparison.InvariantCultureIgnoreCase) && model.LocalSiteName.IsNullOrEmpty()) { model = GetConfigurationViewModel(); ModelState.AddModelError(nameof(model.LocalSiteName), "Blob Storage Site name is required."); return(View("Index", model)); } var fileName = model.LocalSiteName; if (fileName.IsNullOrEmpty()) { fileName = $"{site.Name}.episerverdata"; } if (!fileName.EndsWith(".episerverdata", StringComparison.InvariantCultureIgnoreCase)) { fileName += ".episerverdata"; } if (model.SiteExportLocation.Equals("Remote", StringComparison.InvariantCultureIgnoreCase)) { using (var exportStream = InstallService.ExportEpiserverContent(site.StartPage, ContentExport.ExportPages | ContentExport.ExportVisitorGroups)) { StorageService.Add($"Sites/{fileName}", exportStream, exportStream.Length); return(RedirectToAction("Index")); } } var stream = InstallService.ExportEpiserverContent(site.StartPage, ContentExport.ExportPages | ContentExport.ExportVisitorGroups); return(File(stream, "application/octet-stream", fileName)); }
/// <summary> /// Gets the site definition of which the specified content is a member /// Returns the Current definition when no definition could be determined. /// </summary> public static SiteDefinition GetSiteDefinition(this ContentReference content) { var siteDefRepo = new SiteDefinitionRepository( ServiceLocator.Current.GetInstance <DynamicDataStoreFactory>(), ServiceLocator.Current.GetInstance <ISynchronizedObjectInstanceCache>()); var sites = siteDefRepo.List(); var current = Repo.Get <IContent>(content); while (current.ContentLink != ContentReference.EmptyReference) { var site = sites.FirstOrDefault(s => s.StartPage.Equals(current.ContentLink)); if (site != null) { return(site); } current = Repo.Get <IContent>(current.ParentLink); } return(SiteDefinition.Current); }
protected virtual List <SiteDefinition> GetLocalSites() { return(SiteDefinitionRepository.List() .ToList()); }