using Managing.Application.Abstractions; using Managing.Application.ManageBot.Commands; using Managing.Domain.Bots; using MediatR; using static Managing.Common.Enums; namespace Managing.Application.ManageBot { public class RestartBotCommandHandler : IRequestHandler { private readonly ITaskCache _taskCache; public RestartBotCommandHandler(ITaskCache taskCache) { _taskCache = taskCache; } public Task Handle(RestartBotCommand request, CancellationToken cancellationToken) { switch (request.BotType) { case BotType.SimpleBot: var simpleBot = _taskCache.Get(request.Name); simpleBot.Restart(); return Task.FromResult(simpleBot.GetStatus()); case BotType.ScalpingBot: var scalpingBot = _taskCache.Get(request.Name); scalpingBot.Restart(); return Task.FromResult(scalpingBot.GetStatus()); case BotType.FlippingBot: var flippingBot = _taskCache.Get(request.Name); flippingBot.Restart(); return Task.FromResult(flippingBot.GetStatus()); default: return Task.FromResult(BotStatus.Down.ToString()); } } } }