using AutoMapper; using DbFirst.Domain.Entities; using DbFirst.Domain.Repositories; using MediatR; namespace DbFirst.Application.Catalogs.Commands; public class CreateCatalogHandler : IRequestHandler { private readonly ICatalogRepository _repository; private readonly IMapper _mapper; public CreateCatalogHandler(ICatalogRepository repository, IMapper mapper) { _repository = repository; _mapper = mapper; } public async Task Handle(CreateCatalogCommand request, CancellationToken cancellationToken) { var existing = await _repository.GetByTitleAsync(request.Dto.CatTitle, cancellationToken); if (existing != null) { return null; } var entity = _mapper.Map(request.Dto); entity.AddedWho = "system"; entity.AddedWhen = DateTime.UtcNow; entity.ChangedWho = "system"; entity.ChangedWhen = DateTime.UtcNow; var created = await _repository.InsertAsync(entity, cancellationToken); return _mapper.Map(created); } }