domBudg/back/Services/Domain/SpendingGroupService.cs

64 lines
1.9 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 = null)
{
var groups = await _spendingGroupRepo.GetList(search);
return groups.Select(x => x.ToView()).ToList();
}
public async Task<SpendingGroupViewModel> Update(SpendingGroupDto model)
{
var group = await _spendingGroupRepo.Update(model);
if (group == null)
{
throw new EntityNotFoundException("При обновлении не получилось найти группу");
}
return group.ToView();
}
}