@@ -15,6 +15,15 @@ public class Write : IWrite
1515 public ConsoleColor ErrorColor { get ; set ; } = ConsoleColor . Red ;
1616 public ConsoleColor LineColor { get ; set ; } = ConsoleColor . White ;
1717 public List < string > Buffer { get ; set ; } = new List < string > ( ) ;
18+ public bool IsBufferEnabled { get ; set ; }
19+
20+ public Write ( ) : this ( true )
21+ { }
22+
23+ public Write ( bool isBufferEnabled )
24+ {
25+ IsBufferEnabled = isBufferEnabled ;
26+ }
1827
1928 public IWrite Newline ( int count = 1 )
2029 {
@@ -45,14 +54,7 @@ public IWrite Line(object val)
4554
4655 public IWrite ColoredLine ( object val , ConsoleColor consoleColor )
4756 {
48- if ( val == null )
49- val = String . Empty ;
50- consoleOutputLock . WaitOne ( ) ;
51- Console . ForegroundColor = consoleColor ;
52- Console . WriteLine ( val ) ;
53- Console . ResetColor ( ) ;
54- consoleOutputLock . ReleaseMutex ( ) ;
55- Buffer . Add ( val . ToString ( ) ) ;
57+ WriteColoredLineOrText ( val , consoleColor , true ) ;
5658 return this ;
5759 }
5860
@@ -77,16 +79,28 @@ public IWrite Text(object val)
7779 }
7880
7981 public IWrite ColoredText ( object val , ConsoleColor consoleColor )
82+ {
83+ WriteColoredLineOrText ( val , consoleColor , false ) ;
84+ return this ;
85+ }
86+
87+ void WriteColoredLineOrText ( object val , ConsoleColor consoleColor , bool writeLine )
8088 {
8189 if ( val == null )
8290 val = String . Empty ;
8391 consoleOutputLock . WaitOne ( ) ;
8492 Console . ForegroundColor = consoleColor ;
85- Console . Write ( val ) ;
93+ if ( writeLine )
94+ Console . WriteLine ( val ) ;
95+ else
96+ Console . Write ( val ) ;
8697 Console . ResetColor ( ) ;
98+ if ( IsBufferEnabled ) {
99+ Buffer . Add ( val . ToString ( ) ) ;
100+ if ( writeLine )
101+ Buffer . Add ( Environment . NewLine ) ;
102+ }
87103 consoleOutputLock . ReleaseMutex ( ) ;
88- Buffer . Add ( val . ToString ( ) ) ;
89- return this ;
90104 }
91105
92106 public string FlushBuffer ( )
0 commit comments