40 lines
1.4 KiB
C#
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());
|
|
}
|
|
}
|
|
}
|
|
}
|