-
Notifications
You must be signed in to change notification settings - Fork 0
/
ConsoleHandler.cs
62 lines (52 loc) · 2.08 KB
/
ConsoleHandler.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
using System;
using System.Collections.Generic;
namespace Imgup
{
class Prompt
{
internal string Message { get; set; }
internal string AcceptMessage { get; set; }
internal string DeclineMessage { get; set; }
internal Action AcceptAction { get; set; }
internal Action DeclineAction { get; set; }
}
static class ConsoleHandler
{
internal static void WriteSuccess(string message) => WriteMessage(message, ConsoleColor.Green);
internal static void WriteFailure(string message) => WriteMessage(message, ConsoleColor.Red);
static void WriteMessage(string message, ConsoleColor color)
{
Console.ForegroundColor = color;
Console.WriteLine(message);
}
internal static void WriteTable(IEnumerable<ImageDetail> details)
{
Console.WriteLine();
Console.WriteLine("Id \t\t Link \t\t\t\t\t DeleteHash \t\t UploadedOn");
Console.WriteLine("-- \t\t ---- \t\t\t\t\t ---------- \t\t ----------");
foreach (var detail in details)
Console.WriteLine($"{detail.Id} \t {detail.Link} \t {detail.DeleteHash} \t {detail.UploadedOn}");
Console.WriteLine();
}
internal static void Prompt(Prompt prompt)
{
Console.Write(prompt.Message);
var Decision = Console.ReadKey();
Console.WriteLine();
if (Decision.KeyChar.Equals('y') || Decision.KeyChar.Equals('Y'))
{
if (!string.IsNullOrWhiteSpace(prompt.AcceptMessage))
Console.WriteLine(prompt.AcceptMessage);
if (prompt.AcceptAction != null)
prompt.AcceptAction();
}
else
{
if (!string.IsNullOrWhiteSpace(prompt.DeclineMessage))
Console.WriteLine(prompt.DeclineMessage);
if (prompt.DeclineAction != null)
prompt.DeclineAction();
}
}
}
}