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); }
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, "Автоматическое удаление использованных анонсов."); }