Ejemplo n.º 1
0
        private bool CheckPreparation(NextIssuePreparation preparation, MediaWiki wiki, bool onlyNew)
        {
            var hasChanges = false;

            if (preparation.NewSections != null && preparation.NewSections.Count > 0)
            {
                preparation.Sections.InsertRange(0, preparation.NewSections);
                preparation.NewSections.Clear();
                hasChanges = true;
            }

            foreach (var article in preparation.Sections.SelectMany(s => s.Articles).ToArray())
            {
                if (onlyNew && article.Status != null)
                {
                    continue;
                }
                if (article.Status != null && article.Status.Extra != null)
                {
                    continue;
                }

                article.Status = CheckStatus(wiki, article.Title) ?? CheckValidness(wiki, article.Title);
                hasChanges     = true;
            }

            if (hasChanges)
            {
                preparation.Update();
            }

            return(hasChanges);
        }
Ejemplo n.º 2
0
        public void RemoveMarkedFromNextIssue(DateTime issueDate)
        {
            var nip = new NextIssuePreparation(_wiki.GetPage(NextIssueName));

            foreach (var item in nip.Sections.Where(x => x.GetIssueDate() == issueDate).ToList())
            {
                nip.Sections.Remove(item);
            }
            nip.Update();
            _wiki.Edit(NextIssueName, nip.FullText, "Автоматическое удаление использованных анонсов.");
        }