|
|
@@ -0,0 +1,76 @@
|
|
|
+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;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+}
|