47 lines
1.7 KiB
C#
47 lines
1.7 KiB
C#
using Liber_Incantamentum.Application.DTOs.Filter;
|
|
using Liber_Incantamentum.Application.DTOs.General;
|
|
using Liber_Incantamentum.Application.Interfaces.Generals;
|
|
using Liber_Incantamentum.Application.Interfaces.Mappings;
|
|
using Liber_Incantamentum.Application.Interfaces.Validations;
|
|
using Liber_Incantamentum.Domain.Repositories;
|
|
|
|
namespace Liber_Incantamentum.Application.Services.Generals
|
|
{
|
|
public class MageService : IMageService
|
|
{
|
|
private IValidator _validator;
|
|
private IMageRepository _mageRepository;
|
|
private IMapper _mapper;
|
|
public MageService(IMapper mapper, IMageRepository mageRepository, IValidator validator)
|
|
{
|
|
_mapper = mapper;
|
|
_mageRepository = mageRepository;
|
|
_validator = validator;
|
|
}
|
|
public async Task<bool> AddMageAsync(MageDto dto)
|
|
{
|
|
_validator.ValidateMageDto(dto);
|
|
return await _mageRepository.AddMageAsync(_mapper.MapMageDtoToMageEntity(dto));
|
|
}
|
|
|
|
public async Task<bool> DeleteMageAsync(Guid id)
|
|
{
|
|
_validator.ValidateGuid(id);
|
|
return await _mageRepository.DeleteMageAsync(id);
|
|
}
|
|
|
|
public async Task<ICollection<MageDto>?> GetAllMageAsync(MageDtoFilter filter)
|
|
{
|
|
_validator.ValidateMageDtoFilter(filter);
|
|
return await _mapper.MapMageEntityCollectionToMageDtoCollection(_mageRepository.GetAllMageAsync(_mapper.MapMageDtoFilterToMageFilterEntity(filter)));
|
|
}
|
|
|
|
public async Task<bool> UpdateMageAsync(MageDtoFilter dto)
|
|
{
|
|
_validator.ValidateMageDtoFilter(dto);
|
|
await _mageRepository.UpdateMageAsync(_mapper.MapMageDtoFilterToMageFilterEntity(dto));
|
|
return false;
|
|
}
|
|
}
|
|
}
|