38 lines
929 B
C#
38 lines
929 B
C#
namespace RelayShared.Services;
|
|
|
|
public static class ConsoleCommandService
|
|
{
|
|
public static CancellationTokenSource ShutdownTokenSource { get; } = new();
|
|
|
|
public static void Start()
|
|
{
|
|
Task.Run(() =>
|
|
{
|
|
while (!ShutdownTokenSource.IsCancellationRequested)
|
|
{
|
|
var input = Console.ReadLine();
|
|
|
|
if (string.IsNullOrWhiteSpace(input))
|
|
continue;
|
|
|
|
HandleCommand(input.Trim().ToLower());
|
|
}
|
|
});
|
|
}
|
|
|
|
private static void HandleCommand(string command)
|
|
{
|
|
switch (command)
|
|
{
|
|
case "exit":
|
|
case "stop":
|
|
Console.WriteLine("Shutting down...");
|
|
ShutdownTokenSource.Cancel();
|
|
break;
|
|
|
|
default:
|
|
Console.WriteLine($"Unknown command: {command}");
|
|
break;
|
|
}
|
|
}
|
|
} |