public MessageResult MultipleAssemblePage(int[] ids) { var failedIds = new List <int>(); foreach (var id in ids) { var page = PageRepository.GetPagePropertiesById(id); if (page.PageTemplate.SiteIsDotNet) { new AssemblePageController(id, QPContext.CurrentDbConnectionString).Assemble(); AssembleRepository.UpdatePageStatus(id, QPContext.CurrentUserId); } else { var token = _qp7Service.Authenticate(); var message = _qp7Service.AssemblePage(id, token); if (!string.IsNullOrEmpty(message)) { failedIds.Add(id); } } } return(failedIds.Any() ? MessageResult.Error(SiteStrings.AssemblePagesError + string.Join(", ", failedIds), failedIds.ToArray()) : null); }
public MultistepActionStepResult Step(int step) { var context = HttpContext.Session.GetValue <AssemblePagesCommandContext>(HttpContextSession.AssemblePagesCommandProcessingContext); var pages = context.Pages .Skip(step * ItemsPerStep) .Take(ItemsPerStep) .ToArray(); if (pages.Any()) { foreach (var page in pages) { if (IsDotNet) { new AssemblePageController(page.Id, QPContext.CurrentDbConnectionString).Assemble(); AssembleRepository.UpdatePageStatus(page.Id, QPContext.CurrentUserId); } else { var result = QP7Service.AssemblePage(page.Id, context.QP7Token); if (!string.IsNullOrEmpty(result)) { var pagesForResult = new List <PageInfo>(); if (context.MissedPages.ContainsKey(result)) { pagesForResult = context.MissedPages[result]; } else { context.MissedPages[result] = pagesForResult; } pagesForResult.Add(page); } } } } var pageCount = context.MissedPages.Sum(rp => rp.Value.Count); var info = new StringBuilder(); if (pageCount > 0) { info.AppendFormat(SiteStrings.AssemblePagesResult, pageCount); foreach (var item in context.MissedPages) { info.AppendFormat(" \"{0}\" : [{1}]", item.Key, string.Join(", ", item.Value.Select(p => string.Format(PageTemplate, p.Template, p.Name)))); } } return(new MultistepActionStepResult { ProcessedItemsCount = pages.Length, AdditionalInfo = info.ToString() }); }
public MessageResult AssemblePage(int id) { var page = PageRepository.GetPagePropertiesById(id); if (page.PageTemplate.SiteIsDotNet) { new AssemblePageController(id, QPContext.CurrentDbConnectionString).Assemble(); AssembleRepository.UpdatePageStatus(id, QPContext.CurrentUserId); return(null); } return(MessageResult.Error(SiteStrings.ShouldBeDotNet)); }
public MessageResult AssemblePage(int id) { var page = PageRepository.GetPagePropertiesById(id); if (page.PageTemplate.SiteIsDotNet) { new AssemblePageController(id, QPContext.CurrentDbConnectionString).Assemble(); AssembleRepository.UpdatePageStatus(id, QPContext.CurrentUserId); } else { var token = _qp7Service.Authenticate(); var message = _qp7Service.AssemblePage(id, token); if (!string.IsNullOrEmpty(message)) { return(MessageResult.Error(message)); } } return(null); }