54 lines
1.8 KiB
C#
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);
|
|
}
|
|
}
|