private void AnalyzeNonMainPart(DqPart dqPart, DqDocument dqDocument) { var centeredParts = new[] { PartType.Bibliography, PartType.Abstract, PartType.Introduction, PartType.Conclusion, PartType.Toc }; if (!centeredParts.Contains(dqPart.Type)) { return; } var dqParagraph = dqPart.Start; if (!dqParagraph.Text.StartsWith("{PageBreak}") && !dqDocument.Paragraphs[dqParagraph.Index - 1].Text.EndsWith("{PageBreak}")) { dqParagraph.Meta.Errors.Add(new DqError("Перед разделом отсутсвует разрыв страницы.")); } if (dqParagraph.Style.Aligment != DqAligment.Center) { dqParagraph.Meta.Errors.Add(new DqAlignmentError($"Заголовки разделов должны быть выровнены по центру.")); } else if (dqParagraph.Style.Indent != 0) { dqParagraph.Meta.Errors.Add(new DqAlignmentError($"При выравнивании по центру должен отсутвовать абзацный отступ.")); } if (string.Equals(dqParagraph.GetPureText(), "список использованной литературы", StringComparison.OrdinalIgnoreCase)) { dqParagraph.Meta.Errors.Add(new DqError($"Нормативное название части — «Список использованных источников».")); } }
private void FindSpaces(DqPart dqPart) { foreach (var dqParagraph in dqPart.Paragraphs) { if (dqParagraph.Text.StartsWith(" ")) { dqParagraph.Meta.Errors.Add(new DqWarning("Абзац начинается с нескольких пробелов.")); } } }
private DqPart CopyContent(DqPart dqPart, DqDocument dqDocument, int partStart, int?partEnd) { dqPart.Paragraphs.AddRange(dqDocument.Paragraphs.GetRange(partStart, partEnd.Value - partStart)); return(dqPart); }