Пример #1
0
        public void Export()
        {
            var siteInfo = SiteManager.GetSiteInfo(_siteId);

            var feed = AtomUtility.GetEmptyFeed();

            AtomUtility.AddDcElement(feed.AdditionalElements, new List <string> {
                SiteAttribute.Id, "PublishmentSystemId"
            }, siteInfo.Id.ToString());
            AtomUtility.AddDcElement(feed.AdditionalElements, new List <string> {
                SiteAttribute.SiteName, "PublishmentSystemName"
            }, siteInfo.SiteName);
            AtomUtility.AddDcElement(feed.AdditionalElements, new List <string> {
                SiteAttribute.SiteDir, "PublishmentSystemDir"
            }, siteInfo.SiteDir);
            AtomUtility.AddDcElement(feed.AdditionalElements, new List <string> {
                SiteAttribute.TableName, "AuxiliaryTableForContent"
            }, siteInfo.TableName);
            AtomUtility.AddDcElement(feed.AdditionalElements, new List <string> {
                SiteAttribute.IsRoot, "IsHeadquarters"
            }, siteInfo.IsRoot.ToString());
            AtomUtility.AddDcElement(feed.AdditionalElements, new List <string> {
                SiteAttribute.ParentId, "ParentPublishmentSystemId"
            }, siteInfo.ParentId.ToString());
            AtomUtility.AddDcElement(feed.AdditionalElements, SiteAttribute.Taxis, siteInfo.Taxis.ToString());
            AtomUtility.AddDcElement(feed.AdditionalElements, SiteAttribute.SettingsXml, siteInfo.Additional.ToString());

            var indexTemplateId = TemplateManager.GetDefaultTemplateId(siteInfo.Id, TemplateType.IndexPageTemplate);

            if (indexTemplateId != 0)
            {
                var indexTemplateName = TemplateManager.GetTemplateName(_siteId, indexTemplateId);
                AtomUtility.AddDcElement(feed.AdditionalElements, DefaultIndexTemplateName, indexTemplateName);
            }

            var channelTemplateId = TemplateManager.GetDefaultTemplateId(siteInfo.Id, TemplateType.ChannelTemplate);

            if (channelTemplateId != 0)
            {
                var channelTemplateName = TemplateManager.GetTemplateName(_siteId, channelTemplateId);
                AtomUtility.AddDcElement(feed.AdditionalElements, DefaultChannelTemplateName, channelTemplateName);
            }

            var contentTemplateId = TemplateManager.GetDefaultTemplateId(siteInfo.Id, TemplateType.ContentTemplate);

            if (contentTemplateId != 0)
            {
                var contentTemplateName = TemplateManager.GetTemplateName(_siteId, contentTemplateId);
                AtomUtility.AddDcElement(feed.AdditionalElements, DefaultContentTemplateName, contentTemplateName);
            }

            var fileTemplateId = TemplateManager.GetDefaultTemplateId(siteInfo.Id, TemplateType.FileTemplate);

            if (fileTemplateId != 0)
            {
                var fileTemplateName = TemplateManager.GetTemplateName(siteInfo.Id, fileTemplateId);
                AtomUtility.AddDcElement(feed.AdditionalElements, DefaultFileTemplateName, fileTemplateName);
            }

            var channelGroupInfoList = ChannelGroupManager.GetChannelGroupInfoList(siteInfo.Id);

            channelGroupInfoList.Reverse();

            foreach (var channelGroupInfo in channelGroupInfoList)
            {
                var entry = ChannelGroupIe.Export(channelGroupInfo);
                feed.Entries.Add(entry);
            }

            var contentGroupInfoList = ContentGroupManager.GetContentGroupInfoList(siteInfo.Id);

            contentGroupInfoList.Reverse();

            foreach (var contentGroupInfo in contentGroupInfoList)
            {
                var entry = ContentGroupIe.Export(contentGroupInfo);
                feed.Entries.Add(entry);
            }

            feed.Save(_filePath);
        }
Пример #2
0
        public void Import()
        {
            if (!FileUtils.IsFileExists(_filePath))
            {
                return;
            }

            var feed = AtomFeed.Load(FileUtils.GetFileStreamReadOnly(_filePath));

            var siteInfo = SiteManager.GetSiteInfo(_siteId);

            siteInfo.SettingsXml = AtomUtility.GetDcElementContent(feed.AdditionalElements, SiteAttribute.SettingsXml, siteInfo.SettingsXml);

            siteInfo.Additional.IsSeparatedWeb      = false;
            siteInfo.Additional.IsCreateDoubleClick = false;

            DataProvider.SiteDao.Update(siteInfo);

            var indexTemplateName = AtomUtility.GetDcElementContent(feed.AdditionalElements, DefaultIndexTemplateName);

            if (!string.IsNullOrEmpty(indexTemplateName))
            {
                var indexTemplateId = TemplateManager.GetTemplateIdByTemplateName(siteInfo.Id, TemplateType.IndexPageTemplate, indexTemplateName);
                if (indexTemplateId != 0)
                {
                    DataProvider.TemplateDao.SetDefault(siteInfo.Id, indexTemplateId);
                }
            }

            var channelTemplateName = AtomUtility.GetDcElementContent(feed.AdditionalElements, DefaultChannelTemplateName);

            if (!string.IsNullOrEmpty(channelTemplateName))
            {
                var channelTemplateId = TemplateManager.GetTemplateIdByTemplateName(siteInfo.Id, TemplateType.ChannelTemplate, channelTemplateName);
                if (channelTemplateId != 0)
                {
                    DataProvider.TemplateDao.SetDefault(siteInfo.Id, channelTemplateId);
                }
            }

            var contentTemplateName = AtomUtility.GetDcElementContent(feed.AdditionalElements, DefaultContentTemplateName);

            if (!string.IsNullOrEmpty(contentTemplateName))
            {
                var contentTemplateId = TemplateManager.GetTemplateIdByTemplateName(siteInfo.Id, TemplateType.ContentTemplate, contentTemplateName);
                if (contentTemplateId != 0)
                {
                    DataProvider.TemplateDao.SetDefault(siteInfo.Id, contentTemplateId);
                }
            }

            var fileTemplateName = AtomUtility.GetDcElementContent(feed.AdditionalElements, DefaultFileTemplateName);

            if (!string.IsNullOrEmpty(fileTemplateName))
            {
                var fileTemplateId = TemplateManager.GetTemplateIdByTemplateName(siteInfo.Id, TemplateType.FileTemplate, fileTemplateName);
                if (fileTemplateId != 0)
                {
                    DataProvider.TemplateDao.SetDefault(siteInfo.Id, fileTemplateId);
                }
            }

            foreach (AtomEntry entry in feed.Entries)
            {
                if (!ChannelGroupIe.Import(entry, siteInfo.Id))
                {
                    ContentGroupIe.Import(entry, siteInfo.Id);
                }
            }
        }