示例#1
0
 public override void ClonePart(Webpage @from, Webpage to, SiteCloneContext siteCloneContext)
 {
     if (@from.PageTemplate == null)
     {
         return;
     }
     to.PageTemplate = siteCloneContext.FindNew <PageTemplate>(@from.PageTemplate.Id);
     _session.Transact(session => session.Update(to));
 }
示例#2
0
        public void Clone(Site @from, Site to, SiteCloneContext siteCloneContext)
        {
            var fromProvider     = new SqlConfigurationProvider(_session, @from);
            var fromSiteSettings = fromProvider.GetSiteSettings <SiteSettings>();
            var toProvider       = new SqlConfigurationProvider(_session, @to);
            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);
        }
示例#3
0
        public void Clone(Site @from, Site to, SiteCloneContext siteCloneContext)
        {
            ConfigurationProvider fromProvider     = new ConfigurationProvider(@from, _legacySettingsProvider);
            SiteSettings          fromSiteSettings = fromProvider.GetSiteSettings <SiteSettings>();
            ConfigurationProvider toProvider       = new ConfigurationProvider(@to, _legacySettingsProvider);
            SiteSettings          toSiteSettings   = toProvider.GetSiteSettings <SiteSettings>();

            Webpage error403 = siteCloneContext.FindNew <Webpage>(fromSiteSettings.Error403PageId);

            if (error403 != null)
            {
                toSiteSettings.Error403PageId = error403.Id;
            }

            Webpage error404 = siteCloneContext.FindNew <Webpage>(fromSiteSettings.Error404PageId);

            if (error404 != null)
            {
                toSiteSettings.Error404PageId = error404.Id;
            }

            Webpage error500 = siteCloneContext.FindNew <Webpage>(fromSiteSettings.Error500PageId);

            if (error500 != null)
            {
                toSiteSettings.Error500PageId = error500.Id;
            }

            Layout layout = siteCloneContext.FindNew <Layout>(fromSiteSettings.DefaultLayoutId);

            if (layout != null)
            {
                toSiteSettings.DefaultLayoutId = layout.Id;
            }

            toProvider.SaveSettings(toSiteSettings);
        }
示例#4
0
        public void Clone(Site @from, Site to, SiteCloneContext siteCloneContext)
        {
            ConfigurationProvider toProvider           = new ConfigurationProvider(@to, _legacySettingsProvider);
            PageDefaultsSettings  pageDefaultsSettings = toProvider.GetSiteSettings <PageDefaultsSettings>();

            System.Collections.Generic.List <string> keys = pageDefaultsSettings.Layouts.Keys.ToList();
            foreach (string key in keys.Where(key => pageDefaultsSettings.Layouts[key].HasValue))
            {
                Layout layout = siteCloneContext.FindNew <Layout>(pageDefaultsSettings.Layouts[key].Value);
                if (layout != null)
                {
                    pageDefaultsSettings.Layouts[key] = layout.Id;
                }
            }

            toProvider.SaveSettings(pageDefaultsSettings);
        }
示例#5
0
        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);
        }
示例#6
0
        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);
                    }
                });
            }
        }