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); }
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); }