using AutoMapper; using DbFirst.Domain.DomainEntities; using DbFirst.Domain.Repositories; namespace DbFirst.Application.Catalogs; public class CatalogService : ICatalogService { private readonly ICatalogRepository _repository; private readonly IMapper _mapper; public CatalogService(ICatalogRepository repository, IMapper mapper) { _repository = repository; _mapper = mapper; } public async Task> GetAllAsync(CancellationToken cancellationToken = default) { var domainItems = await _repository.GetAllAsync(cancellationToken); return _mapper.Map>(domainItems); } public async Task GetByIdAsync(int id, CancellationToken cancellationToken = default) { var domainItem = await _repository.GetByIdAsync(id, cancellationToken); return domainItem == null ? null : _mapper.Map(domainItem); } public async Task CreateAsync(CatalogDto dto, CancellationToken cancellationToken = default) { var domainItem = _mapper.Map(dto); var created = await _repository.AddAsync(domainItem, cancellationToken); return _mapper.Map(created); } public async Task UpdateAsync(int id, CatalogDto dto, CancellationToken cancellationToken = default) { var domainItem = _mapper.Map(dto); return await _repository.UpdateAsync(id, domainItem, cancellationToken); } public async Task DeleteAsync(int id, CancellationToken cancellationToken = default) { return await _repository.DeleteAsync(id, cancellationToken); } }