using AutoMapper; using DbFirst.Domain.Entities; using DbFirst.Domain.Repositories; using MediatR; namespace DbFirst.Application.Catalogs.Commands; public class UpdateCatalogHandler : IRequestHandler { private readonly ICatalogRepository _repository; private readonly IMapper _mapper; public UpdateCatalogHandler(ICatalogRepository repository, IMapper mapper) { _repository = repository; _mapper = mapper; } public async Task Handle(UpdateCatalogCommand request, CancellationToken cancellationToken) { var existing = await _repository.GetByIdAsync(request.Id, cancellationToken); if (existing == null) { return null; } var entity = _mapper.Map(request.Dto); entity.Guid = request.Id; entity.CatTitle = existing.CatTitle; entity.AddedWho = existing.AddedWho; entity.AddedWhen = existing.AddedWhen; entity.ChangedWho = "system"; entity.ChangedWhen = DateTime.UtcNow; var updated = await _repository.UpdateAsync(request.Id, entity, cancellationToken); return updated == null ? null : _mapper.Map(updated); } }