using Managing.Application.Abstractions.Repositories; using Managing.Domain.Bots; using Managing.Domain.Users; using static Managing.Common.Enums; namespace Managing.Application.ManageBot { public interface IBackupBotService { Task GetBotBackup(string identifier); Task SaveOrUpdateBotBackup(User user, string identifier, BotStatus status, TradingBotBackup data); } public class BackupBotService : IBackupBotService { private readonly IBotRepository _botRepository; public BackupBotService(IBotRepository botRepository) { _botRepository = botRepository; } public async Task GetBotBackup(string identifier) { return await _botRepository.GetBotByIdentifierAsync(identifier); } public async Task SaveOrUpdateBotBackup(User user, string identifier, BotStatus status, TradingBotBackup data) { var backup = await GetBotBackup(identifier); if (backup != null) { backup.LastStatus = status; backup.Data = data; await _botRepository.UpdateBackupBot(backup); } else { var botBackup = new BotBackup { LastStatus = status, User = user, Identifier = identifier, Data = data }; await _botRepository.InsertBotAsync(botBackup); } } } }