using System; using Quadarax.Foundation.Common.Object; namespace Quadarax.Foundation.Common.Console { public class ConsoleWriter : DisposableObject { private readonly ConsoleColor _oldBackColor; private readonly ConsoleColor _oldForeColor; private readonly ConsoleColor _backColor; private readonly ConsoleColor _foreColor; public ConsoleWriter(ConsoleColor foreColor,ConsoleColor backColor) { _oldBackColor = System.Console.BackgroundColor; _oldForeColor = System.Console.ForegroundColor; _backColor = backColor; _foreColor = foreColor; } public ConsoleWriter(ConsoleColor foreColor) { _oldBackColor = System.Console.BackgroundColor; _oldForeColor = System.Console.ForegroundColor; _backColor = _oldBackColor; _foreColor = foreColor; } public ConsoleWriter WriteLine(string text) { SetColor(); System.Console.WriteLine(text); return this; } public string ReadLine() { SetColor(); return System.Console.ReadLine(); } public ConsoleWriter WriteLine() { System.Console.WriteLine(); return this; } public ConsoleWriter Write(string text) { SetColor(); System.Console.Write(text); return this; } public static void Clear() { System.Console.Clear(); } protected override void OnDisposing() { System.Console.ForegroundColor = _oldForeColor; System.Console.BackgroundColor = _oldBackColor; } private void SetColor() { System.Console.ForegroundColor = _foreColor; System.Console.BackgroundColor = _backColor; } } }