Add backup management
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
using Managing.Domain.Bots;
|
||||
using MediatR;
|
||||
using static Managing.Common.Enums;
|
||||
using Managing.Application.Abstractions;
|
||||
using Managing.Application.ManageBot.Commands;
|
||||
using Managing.Domain.MoneyManagements;
|
||||
|
||||
namespace Managing.Application.ManageBot
|
||||
{
|
||||
public class BackupBotCommandHandler : IRequestHandler<BackupBotCommand, bool>
|
||||
{
|
||||
private readonly IBotFactory _botFactory;
|
||||
private readonly ITaskCache _taskCache;
|
||||
private readonly IMoneyManagementService _moneyManagementService;
|
||||
private readonly IBotService _botService;
|
||||
|
||||
public BackupBotCommandHandler(IBotFactory botFactory, ITaskCache taskCache, IBotService botService)
|
||||
{
|
||||
_botFactory = botFactory;
|
||||
_taskCache = taskCache;
|
||||
_botService = botService;
|
||||
}
|
||||
|
||||
public Task<bool> Handle(BackupBotCommand request, CancellationToken cancellationToken)
|
||||
{
|
||||
var botBackup = new BotBackup
|
||||
{
|
||||
Name = request.Name,
|
||||
BotType = request.BotType,
|
||||
Data = ""
|
||||
};
|
||||
|
||||
switch (request.BotType)
|
||||
{
|
||||
case BotType.SimpleBot:
|
||||
var simpleBot = _taskCache.Get<IBot>(request.Name);
|
||||
botBackup.Data = simpleBot.GetBackup();
|
||||
break;
|
||||
case BotType.ScalpingBot:
|
||||
var scalpingBot = _taskCache.Get<ITradingBot>(request.Name);
|
||||
botBackup.Data = scalpingBot.GetBackup();
|
||||
break;
|
||||
case BotType.FlippingBot:
|
||||
var flippingBot = _taskCache.Get<ITradingBot>(request.Name);
|
||||
botBackup.Data = flippingBot.GetBackup();
|
||||
break;
|
||||
default:
|
||||
return Task.FromResult(false);
|
||||
}
|
||||
|
||||
_botService.SaveBotBackup(botBackup);
|
||||
|
||||
return Task.FromResult(true);
|
||||
}
|
||||
}
|
||||
|
||||
public class BackupBotCommand : IRequest<bool>
|
||||
{
|
||||
public string Name { get; }
|
||||
public BotType BotType { get; }
|
||||
|
||||
public BackupBotCommand(BotType botType, string name)
|
||||
{
|
||||
BotType = botType;
|
||||
Name = name;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user