summary refs log tree commit diff
path: root/ReferenceClientProxyImplementation/Tasks/Tasks.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--ReferenceClientProxyImplementation/Tasks/Tasks.cs28
1 files changed, 28 insertions, 0 deletions
diff --git a/ReferenceClientProxyImplementation/Tasks/Tasks.cs b/ReferenceClientProxyImplementation/Tasks/Tasks.cs
new file mode 100644

index 0000000..5038002 --- /dev/null +++ b/ReferenceClientProxyImplementation/Tasks/Tasks.cs
@@ -0,0 +1,28 @@ +namespace ReferenceClientProxyImplementation.Tasks; + +public class Tasks(IServiceProvider serviceProvider) : BackgroundService { + protected override async Task ExecuteAsync(CancellationToken stoppingToken) { + var defaultColor = Console.ForegroundColor; + var tasks = serviceProvider.GetServices<ITask>().ToList(); + // List<ITask> tasks = new() + // { + // new BuildClientTask(), + // new PatchClientAssetsTask() + // }; + var i = 0; + foreach (var task in tasks.OrderBy(x => x.GetOrder())) { + Console.ForegroundColor = ConsoleColor.DarkBlue; + Console.Write("==> "); + Console.ForegroundColor = ConsoleColor.DarkGray; + Console.WriteLine($"Running task {++i}/{tasks.Count}: {task.GetName()} (Type<{task.GetType().Name}>)"); + Console.ForegroundColor = defaultColor; + task.Execute(); + } + } +} + +public interface ITask { + public int GetOrder(); + public string GetName(); + public Task Execute(); +} \ No newline at end of file