Skip to content

Commit e821b92

Browse files
committed
Add helper functions to write color output from command
1 parent ae78187 commit e821b92

File tree

3 files changed

+95
-35
lines changed

3 files changed

+95
-35
lines changed

src/InEngine.Core/AbstractCommand.cs

Lines changed: 61 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
using System;
2+
using InEngine.Core.IO;
23
using Konsole;
34
using NLog;
45
using Quartz;
56

67
namespace InEngine.Core
78
{
8-
abstract public class AbstractCommand : ICommand, IJob
9+
abstract public class AbstractCommand : ICommand, IJob, IWrite
910
{
1011
public IJobExecutionContext JobExecutionContext { get; set; }
1112
public ILogger Logger { get; internal set; }
@@ -22,12 +23,14 @@ public string Name
2223
}
2324
public string SchedulerGroup { get; set; }
2425
public string ScheduleId { get; set; }
26+
public Write Write { get; set; }
2527

2628
protected AbstractCommand()
2729
{
2830
ScheduleId = Guid.NewGuid().ToString();
2931
Name = GetType().FullName;
3032
SchedulerGroup = GetType().AssemblyQualifiedName;
33+
Write = new Write();;
3134
}
3235

3336
public virtual CommandResult Run()
@@ -76,5 +79,62 @@ public TriggerBuilder MakeTriggerBuilder()
7679
.WithIdentity($"{Name}:trigger:{ScheduleId}", SchedulerGroup);
7780
}
7881
#endregion
82+
83+
#region Console output
84+
public IWrite Info(string val)
85+
{
86+
return Write.Info(val);
87+
}
88+
89+
public IWrite Warning(string val)
90+
{
91+
return Write.Warning(val);
92+
}
93+
94+
public IWrite Error(string val)
95+
{
96+
return Write.Error(val);
97+
}
98+
99+
public IWrite Line(string val)
100+
{
101+
return Write.Line(val);
102+
}
103+
104+
public IWrite ColoredLine(string val, ConsoleColor consoleColor)
105+
{
106+
return Write.ColoredLine(val, consoleColor);
107+
}
108+
109+
public IWrite InfoText(string val)
110+
{
111+
return Write.InfoText(val);
112+
}
113+
114+
public IWrite WarningText(string val)
115+
{
116+
return Write.WarningText(val);
117+
}
118+
119+
public IWrite ErrorText(string val)
120+
{
121+
return Write.ErrorText(val);
122+
}
123+
124+
public IWrite LineText(string val)
125+
{
126+
return Write.LineText(val);
127+
}
128+
129+
public IWrite ColoredText(string val, ConsoleColor consoleColor)
130+
{
131+
return Write.ColoredText(val, consoleColor);
132+
}
133+
134+
public IWrite Newline()
135+
{
136+
return Write.Newline();
137+
}
138+
#endregion
79139
}
80140
}

src/InEngine.Core/IO/IWrite.cs

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,17 @@ namespace InEngine.Core.IO
44
{
55
public interface IWrite
66
{
7-
void Info(string val);
8-
void Warning(string val);
9-
void Error(string val);
10-
void Text(string val);
11-
void Line(string val, ConsoleColor consoleColor = ConsoleColor.White);
7+
IWrite Newline();
8+
IWrite Info(string val);
9+
IWrite Warning(string val);
10+
IWrite Error(string val);
11+
IWrite Line(string val);
12+
IWrite ColoredLine(string val, ConsoleColor consoleColor);
13+
14+
IWrite InfoText(string val);
15+
IWrite WarningText(string val);
16+
IWrite ErrorText(string val);
17+
IWrite LineText(string val);
18+
IWrite ColoredText(string val, ConsoleColor consoleColor);
1219
}
1320
}

src/InEngine.Core/IO/Write.cs

Lines changed: 22 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2,80 +2,73 @@
22

33
namespace InEngine.Core.IO
44
{
5-
public class Write
5+
public class Write : IWrite
66
{
77
public ConsoleColor InfoColor { get; set; } = ConsoleColor.Green;
88
public ConsoleColor WarningColor { get; set; } = ConsoleColor.Yellow;
99
public ConsoleColor ErrorColor { get; set; } = ConsoleColor.Red;
1010
public ConsoleColor LineColor { get; set; } = ConsoleColor.White;
1111

12-
public Write Newline()
12+
public IWrite Newline()
1313
{
1414
Console.WriteLine();
1515
return this;
1616
}
1717

18-
public Write Info(string val)
18+
public IWrite Info(string val)
1919
{
20-
ColoredLine(val, InfoColor);
21-
return this;
20+
return ColoredLine(val, InfoColor);
2221
}
2322

24-
public Write Error(string val)
23+
public IWrite Error(string val)
2524
{
26-
ColoredLine(val, ErrorColor);
27-
return this;
25+
return ColoredLine(val, ErrorColor);
2826
}
2927

30-
public Write Warning(string val)
28+
public IWrite Warning(string val)
3129
{
32-
ColoredLine(val, WarningColor);
33-
return this;
30+
return ColoredLine(val, WarningColor);
3431
}
3532

36-
public Write Line(string val)
33+
public IWrite Line(string val)
3734
{
38-
ColoredLine(val, LineColor);
39-
return this;
35+
return ColoredLine(val, LineColor);
4036
}
4137

42-
public static void ColoredLine(string val, ConsoleColor consoleColor)
38+
public IWrite ColoredLine(string val, ConsoleColor consoleColor)
4339
{
4440
Console.ForegroundColor = consoleColor;
4541
Console.WriteLine(val);
4642
Console.ResetColor();
43+
return this;
4744
}
4845

49-
50-
public Write InfoText(string val)
46+
public IWrite InfoText(string val)
5147
{
52-
ColoredText(val, InfoColor);
53-
return this;
48+
return ColoredText(val, InfoColor);
5449
}
5550

56-
public Write ErrorText(string val)
51+
public IWrite ErrorText(string val)
5752
{
58-
ColoredText(val, ErrorColor);
59-
return this;
53+
return ColoredText(val, ErrorColor);
6054
}
6155

62-
public Write WarningText(string val)
56+
public IWrite WarningText(string val)
6357
{
64-
ColoredText(val, WarningColor);
65-
return this;
58+
return ColoredText(val, WarningColor);
6659
}
6760

68-
public Write LineText(string val)
61+
public IWrite LineText(string val)
6962
{
70-
ColoredText(val, LineColor);
71-
return this;
63+
return ColoredText(val, LineColor);
7264
}
7365

74-
public static void ColoredText(string val, ConsoleColor consoleColor)
66+
public IWrite ColoredText(string val, ConsoleColor consoleColor)
7567
{
7668
Console.ForegroundColor = consoleColor;
7769
Console.Write(val);
7870
Console.ResetColor();
71+
return this;
7972
}
8073
}
8174
}

0 commit comments

Comments
 (0)