Files
managing-apps/src/Managing.Infrastructure.Database/SettingsRepository.cs
2024-05-03 16:39:25 +05:00

54 lines
1.8 KiB
C#

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<MoneyManagementDto> _moneyManagementRepository;
public SettingsRepository(IMongoRepository<MoneyManagementDto> 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<MoneyManagement> GetMoneyManagement(string name)
{
var moneyManagement = await _moneyManagementRepository.FindOneAsync(m => m.Name == name);
return MongoMappers.Map(moneyManagement);
}
public IEnumerable<MoneyManagement> 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);
}
}