Files
managing-apps/src/Managing.Application/ManageBot/RestartBotCommandHandler.cs
2024-05-03 16:39:25 +05:00

40 lines
1.4 KiB
C#

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<RestartBotCommand, string>
{
private readonly ITaskCache _taskCache;
public RestartBotCommandHandler(ITaskCache taskCache)
{
_taskCache = taskCache;
}
public Task<string> Handle(RestartBotCommand request, CancellationToken cancellationToken)
{
switch (request.BotType)
{
case BotType.SimpleBot:
var simpleBot = _taskCache.Get<IBot>(request.Name);
simpleBot.Restart();
return Task.FromResult(simpleBot.GetStatus());
case BotType.ScalpingBot:
var scalpingBot = _taskCache.Get<ITradingBot>(request.Name);
scalpingBot.Restart();
return Task.FromResult(scalpingBot.GetStatus());
case BotType.FlippingBot:
var flippingBot = _taskCache.Get<ITradingBot>(request.Name);
flippingBot.Restart();
return Task.FromResult(flippingBot.GetStatus());
default:
return Task.FromResult(BotStatus.Down.ToString());
}
}
}
}