Beispiel #1
0
        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);
        }
Beispiel #2
0
        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()
            });
        }
Beispiel #3
0
        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));
        }
Beispiel #4
0
        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);
        }