74 lines
2.1 KiB
C#
Raw Normal View History

2024-12-08 22:57:55 +04:00
using AutoMapper;
using Contracts;
using Domain.Entities;
using Domain.Repository;
using Services.Abstractions;
namespace Services
{
public class RegionService : IRegionService
{
private readonly IRegionRepository _regionRepository;
private readonly IMapper _mapper;
public RegionService(IRegionRepository regionRepository, IMapper mapper)
{
_regionRepository = regionRepository;
_mapper = mapper;
}
public async Task<RegionDto> CreateAsync(RegionDtoForCreate regionDto)
{
var region = _mapper.Map<Region>(regionDto);
await _regionRepository.AddAsync(region);
return _mapper.Map<RegionDto>(region);
//создавать сразу с городами ?
}
public async Task DeleteAsync(Guid regionId)
{
var region = await _regionRepository.GetByIdAsync(regionId);
if (region == null)
{
throw new KeyNotFoundException("Region not found");
}
await _regionRepository.DeleteAsync(region);
}
public async Task<List<RegionDto>> GetAllAsync()
{
var regions = await _regionRepository.GetAllAsync();
return _mapper.Map<List<RegionDto>>(regions);
}
public async Task<RegionDto> GetByIdAsync(Guid id)
{
var region = await _regionRepository.GetByIdAsync(id);
if (region == null)
{
throw new KeyNotFoundException("Region not found.");
}
return _mapper.Map<RegionDto>(region);
}
public async Task UpdateAsync(Guid regionId, RegionDtoForUpdate regionDto)
{
var region = await _regionRepository.GetByIdAsync(regionId);
if (region == null)
{
throw new KeyNotFoundException("Region not found.");
}
region.Name = regionDto.Name;
region.Code = regionDto.Code;
//дописать добавление городов
region.Cities.Add
}
}
}