using Managing.Application.Abstractions.Repositories; using Managing.Domain.MoneyManagements; using Managing.Infrastructure.Databases.MongoDb; using Managing.Infrastructure.Databases.MongoDb.Abstractions; using Managing.Infrastructure.Databases.MongoDb.Collections; namespace Managing.Infrastructure.Databases; public class SettingsRepository : ISettingsRepository { private readonly IMongoRepository _moneyManagementRepository; public SettingsRepository(IMongoRepository moneyManagementRepository) { _moneyManagementRepository = moneyManagementRepository; } public void DeleteMoneyManagement(string name) { var moneyManagement = _moneyManagementRepository.FindOne(m => m.Name == name); _moneyManagementRepository.DeleteById(moneyManagement.Id.ToString()); } public void DeleteMoneyManagements() { _moneyManagementRepository.DropCollection(); } public async Task GetMoneyManagement(string name) { var moneyManagement = await _moneyManagementRepository.FindOneAsync(m => m.Name == name); return MongoMappers.Map(moneyManagement); } public IEnumerable GetMoneyManagements() { var moneyManagements = _moneyManagementRepository.FindAll(); return moneyManagements.Select(m => MongoMappers.Map(m)); } public async Task InsertMoneyManagement(MoneyManagement request) { await _moneyManagementRepository.InsertOneAsync(MongoMappers.Map(request)); } public void UpdateMoneyManagement(MoneyManagement moneyManagement) { var mm = _moneyManagementRepository.FindOne(m => m.Name == moneyManagement.Name); var dto = MongoMappers.Map(moneyManagement); dto.Id = mm.Id; _moneyManagementRepository.Update(dto); } }