summary refs log tree commit diff
path: root/ReferenceClientProxyImplementation/Tasks/Tasks.cs
blob: 5038002a56e8e5da39262f80784be6c8a5ad75e9 (plain) (blame)
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
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();
}