コード例 #1
0
        public MultistepActionStepResult Step(int step)
        {
            var prms      = HttpContext.Session.GetValue <CopySiteSettings>(HttpContextSession.CopySiteServiceSettings);
            var result    = new MultistepActionStepResult();
            var skip      = step * ItemsPerStep;
            var xDocument = XDocument.Load(prms.PathForFileWithLinks);
            var items     = xDocument.Elements().Elements().Skip(skip).Take(ItemsPerStep).ToArray();

            ContentService.UpdateArticlesLinks(SourceSiteId, DestinationSiteId, string.Concat(items.AsEnumerable()));
            result.ProcessedItemsCount = items.Count();

            var siteArticlesCount = xDocument.Elements().Elements().Count();

            if (skip + 1 >= siteArticlesCount - ItemsPerStep)
            {
                ContentService.FillLinkTables(SourceSiteId, DestinationSiteId);
                File.Delete(prms.PathForFileWithLinks);
            }

            return(result);
        }
コード例 #2
0
        public MultistepActionStepResult Step(int step)
        {
            var prms      = (CopySiteSettings)HttpContext.Current.Session[HttpContextSession.CopySiteServiceSettings];
            var result    = new MultistepActionStepResult();
            var startFrom = step * ItemsPerStep + 1;
            var xDocument = XDocument.Load(prms.PathForFileWithLinks);
            var elements  = string.Concat(xDocument.Elements().Elements().Skip(startFrom).Take(ItemsPerStep));

            ContentService.UpdateArticlesLinks(SourceSiteId, DestinationSiteId, elements);
            result.ProcessedItemsCount = xDocument.Elements().Elements().Skip(startFrom).Take(ItemsPerStep).Count();

            var siteArticlesCount = xDocument.Elements().Elements().Count();

            if (startFrom >= siteArticlesCount - ItemsPerStep)
            {
                ContentService.FillLinkTables(SourceSiteId, DestinationSiteId);
                File.Delete(prms.PathForFileWithLinks);
            }

            return(result);
        }