namespace QWERTYkez.WordProcessor; /// Определяет тип разрыва или смены ориентации страницы public enum BreakType { /// Обычный разрыв страницы (новый лист). PageBreak, /// Начать новую секцию с альбомной ориентацией страницы. NewLandscapeSection, /// Начать новую секцию с книжной ориентацией страницы. NewPortraitSection, } public class ReplaceItem { private ReplaceItem() { } public ReplaceItem(string text) => _Text = text; public ReplaceItem(BreakType item) => _BreakValue = item; public static implicit operator ReplaceItem(string text) => new(text); public static implicit operator ReplaceItem(BreakType item) => item switch { BreakType.PageBreak => PageBreak, BreakType.NewLandscapeSection => NewLandscapeSection, BreakType.NewPortraitSection => NewPortraitSection, _ => throw new NotImplementedException() }; public static ReplaceItem PageBreak { get; } = new() { _BreakValue = BreakType.PageBreak }; public static ReplaceItem NewLandscapeSection { get; } = new() { _BreakValue = BreakType.NewLandscapeSection }; public static ReplaceItem NewPortraitSection { get; } = new() { _BreakValue = BreakType.NewPortraitSection }; public string Text => _Text; public string _Text = string.Empty; public BreakType? BreakValue => _BreakValue; public BreakType? _BreakValue; }