add: сервис групп расходов

This commit is contained in:
mfnefd 2024-11-26 00:00:31 +04:00
parent 08a3b74d58
commit 3f76874547
3 changed files with 75 additions and 1 deletions

View File

@ -0,0 +1,63 @@
using Contracts.DTO;
using Contracts.Mappers;
using Contracts.Repositories;
using Contracts.SearchModels;
using Contracts.ViewModels;
using Services.Support.Exceptions;
namespace Contracts.Services;
public class SpendingGroupService : ISpendingGroupService
{
private readonly ISpendingGroupRepo _spendingGroupRepo;
public SpendingGroupService(ISpendingGroupRepo spendingGroupRepo)
{
_spendingGroupRepo = spendingGroupRepo;
}
public async Task<SpendingGroupViewModel> Create(SpendingGroupDto model)
{
var group = await _spendingGroupRepo.Create(model);
return group.ToView();
}
public async Task<SpendingGroupViewModel> Delete(SpendingGroupSearch search)
{
var group = await _spendingGroupRepo.Delete(search);
if (group == null)
{
throw new EntityNotFoundException("При удалении не получилось найти группу");
}
return group.ToView();
}
public async Task<SpendingGroupViewModel> GetDetails(SpendingGroupSearch search)
{
var group = await _spendingGroupRepo.Get(search);
if (group == null)
{
throw new EntityNotFoundException("Не удалось найти группу по таким параметрам");
}
return group.ToView();
}
public async Task<IEnumerable<SpendingGroupViewModel>> GetList(SpendingGroupSearch search)
{
var groups = await _spendingGroupRepo.GetList(search);
return groups.Select(x => x.ToView());
}
public async Task<SpendingGroupViewModel> Update(SpendingGroupDto model)
{
var group = await _spendingGroupRepo.Update(model);
if (group == null)
{
throw new EntityNotFoundException("При обновлении не получилось найти группу");
}
return group.ToView();
}
}

View File

@ -0,0 +1,10 @@
namespace Services.Support.Exceptions;
public class EntityNotFoundException : Exception
{
public EntityNotFoundException(string message)
: base(message) { }
public EntityNotFoundException(string message, Exception innerException)
: base(message, innerException) { }
}

View File

@ -2,10 +2,11 @@ using Contracts.SearchModels;
namespace Services.Support.Exceptions;
public class UserNotFoundException : Exception
public class UserNotFoundException : EntityNotFoundException
{
public UserNotFoundException(string message)
: base(message) { }
public UserNotFoundException(string message, Exception innerException)
: base(message, innerException) { }
}