Add backup management

This commit is contained in:
2024-06-20 22:38:26 +07:00
parent 897ff94a66
commit c25752c670
18 changed files with 413 additions and 5 deletions

View File

@@ -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;
}
}
}