public void Clone(Site @from, Site to, SiteCloneContext siteCloneContext) { var fromProvider = new ConfigurationProvider(@from, _legacySettingsProvider); var toProvider = new ConfigurationProvider(@to, _legacySettingsProvider); var siteSettingsBases = fromProvider.GetAllSiteSettings(); siteSettingsBases.ForEach(toProvider.SaveSettings); }
public void Clone(Site @from, Site to, SiteCloneContext siteCloneContext) { var webpages = _session.QueryOver<Webpage>().Where(webpage => webpage.Site.Id == to.Id).List(); foreach (var webpage in webpages) { var original = siteCloneContext.GetOriginal(webpage); if (original != null) _cloneWebpageSiteParts.Clone(original, webpage, siteCloneContext); } }
public void Clone(Site @from, Site to, SiteCloneContext siteCloneContext) { var copies = GetLayoutCopies(@from, to, siteCloneContext); _session.Transact(session => copies.ForEach(layout => { session.Save(layout); var layoutAreas = layout.LayoutAreas.ToList(); foreach (var layoutArea in layoutAreas) { session.Save(layoutArea); layoutArea.Widgets.ForEach(widget => session.Save(widget)); } })); }
public void Clone(Site @from, Site to, SiteCloneContext siteCloneContext) { var toProvider = new ConfigurationProvider(@to, _legacySettingsProvider); var pageDefaultsSettings = toProvider.GetSiteSettings<PageDefaultsSettings>(); var keys = pageDefaultsSettings.Layouts.Keys.ToList(); foreach (var key in keys.Where(key => pageDefaultsSettings.Layouts[key].HasValue)) { var layout = siteCloneContext.FindNew<Layout>(pageDefaultsSettings.Layouts[key].Value); if (layout != null) pageDefaultsSettings.Layouts[key] = layout.Id; } toProvider.SaveSettings(pageDefaultsSettings); }
public void CloneData(Site site, List<SiteCopyOption> options) { using (new SiteFilterDisabler(_session)) { var siteCopyOptionInfos = options.Select(option => GetSiteCopyOptionInfo(option, _kernel)) .Where(info => info != null) .OrderBy(x => x.Order); var siteCloneContext = new SiteCloneContext(); foreach (var info in siteCopyOptionInfos) { var @from = _session.Get<Site>(info.SiteId); if (@from == null) continue; info.CloneSiteParts.Clone(@from, site, siteCloneContext); } } }
public void Clone(Webpage @from, Webpage to, SiteCloneContext siteCloneContext) { if (from == null || to == null) { return; } Type type = from.GetType(); if (CloneWebpagePartTypes.ContainsKey(type)) { foreach ( object cloneWebpagePart in CloneWebpagePartTypes[type].Select(service => _kernel.Get(service)) ) { var part = cloneWebpagePart as CloneWebpagePart; if (part != null) part.ClonePartBase(from, to, siteCloneContext); } } }
private IEnumerable<MediaCategory> GetMediaCategoryCopies(Site @from, Site to, SiteCloneContext siteCloneContext, MediaCategory fromParent = null, MediaCategory toParent = null) { IQueryOver<MediaCategory, MediaCategory> queryOver = _session.QueryOver<MediaCategory>().Where(layout => layout.Site.Id == @from.Id); queryOver = fromParent == null ? queryOver.Where(layout => layout.Parent == null) : queryOver.Where(layout => layout.Parent.Id == fromParent.Id); IList<MediaCategory> categories = queryOver.List(); foreach (MediaCategory category in categories) { MediaCategory copy = category.GetCopyForSite(to); siteCloneContext.AddEntry(category, copy); copy.Parent = toParent; yield return copy; foreach (MediaCategory child in GetMediaCategoryCopies(@from, to, siteCloneContext, fromParent: category, toParent: copy)) { yield return child; } } }
public void Clone(Site @from, Site to, SiteCloneContext siteCloneContext) { using (new SiteFilterDisabler(_session)) { var existingTemplates = _session.QueryOver<PageTemplate>().Where(template => template.Site.Id == @from.Id).List(); _session.Transact(session => { foreach (var template in existingTemplates) { var copy = template.GetCopyForSite(to); if (template.Layout != null) copy.Layout = siteCloneContext.FindNew<Layout>(template.Layout.Id); session.Save(copy); siteCloneContext.AddEntry(template, copy); } }); } }
public void Clone(Site @from, Site to, SiteCloneContext siteCloneContext) { var fromProvider = new ConfigurationProvider(@from, _legacySettingsProvider); var fromSiteSettings = fromProvider.GetSiteSettings<SiteSettings>(); var toProvider = new ConfigurationProvider(@to, _legacySettingsProvider); var toSiteSettings = toProvider.GetSiteSettings<SiteSettings>(); var error403 = siteCloneContext.FindNew<Webpage>(fromSiteSettings.Error403PageId); if (error403 != null) toSiteSettings.Error403PageId = error403.Id; var error404 = siteCloneContext.FindNew<Webpage>(fromSiteSettings.Error404PageId); if (error404 != null) toSiteSettings.Error404PageId = error404.Id; var error500 = siteCloneContext.FindNew<Webpage>(fromSiteSettings.Error500PageId); if (error500 != null) toSiteSettings.Error500PageId = error500.Id; var layout = siteCloneContext.FindNew<Layout>(fromSiteSettings.DefaultLayoutId); if (layout != null) toSiteSettings.DefaultLayoutId = layout.Id; toProvider.SaveSettings(toSiteSettings); }
private IEnumerable<Webpage> GetWebpageCopies(Site @from, Site to, SiteCloneContext siteCloneContext, Webpage fromParent = null, Webpage toParent = null) { IQueryOver<Webpage, Webpage> queryOver = _session.QueryOver<Webpage>().Where(webpage => webpage.Site.Id == @from.Id); queryOver = fromParent == null ? queryOver.Where(webpage => webpage.Parent == null) : queryOver.Where(webpage => webpage.Parent.Id == fromParent.Id); IList<Webpage> webpages = queryOver.List(); foreach (Webpage webpage in webpages) { Webpage copy = webpage.GetCopyForSite(to); siteCloneContext.AddEntry(webpage, copy); copy.Parent = toParent; yield return copy; foreach (Webpage child in GetWebpageCopies(@from, to, siteCloneContext, webpage, copy)) { yield return child; } } }
private IEnumerable<Layout> GetLayoutCopies(Site @from, Site to, SiteCloneContext siteCloneContext, Layout fromParent = null, Layout toParent = null) { var queryOver = _session.QueryOver<Layout>().Where(layout => layout.Site.Id == @from.Id); queryOver = fromParent == null ? queryOver.Where(layout => layout.Parent == null) : queryOver.Where(layout => layout.Parent.Id == fromParent.Id); var layouts = queryOver.List(); foreach (var layout in layouts) { var copy = layout.GetCopyForSite(to); siteCloneContext.AddEntry(layout, copy); copy.LayoutAreas = layout.LayoutAreas.Select(area => { var areaCopy = area.GetCopyForSite(to); siteCloneContext.AddEntry(area, areaCopy); areaCopy.Layout = copy; areaCopy.Widgets = area.Widgets .Where(widget => widget.Webpage == null) .Select(widget => { var widgetCopy = widget.GetCopyForSite(to); siteCloneContext.AddEntry(widget, widgetCopy); widgetCopy.LayoutArea = areaCopy; return widgetCopy; }) .ToList(); return areaCopy; }).ToList(); copy.Parent = toParent; yield return copy; foreach (var child in GetLayoutCopies(@from, to, siteCloneContext, layout, copy)) { yield return child; } } }
public void Clone(Site @from, Site to, SiteCloneContext siteCloneContext) { IEnumerable<Webpage> copies = GetWebpageCopies(@from, to, siteCloneContext).ToList(); _session.Transact(session => copies.ForEach(webpage => session.Save(webpage))); }
public void Clone(Site @from, Site to, SiteCloneContext siteCloneContext) { IEnumerable<MediaCategory> copies = GetMediaCategoryCopies(@from, to, siteCloneContext); _session.Transact(session => copies.ForEach(category => session.Save(category))); }
public abstract void ClonePartBase(Webpage @from, Webpage to, SiteCloneContext siteCloneContext);