using MyNewProjectName.Domain.Entities; using MyNewProjectName.Domain.Interfaces; using MediatR; namespace MyNewProjectName.Application.Features.Sample.Commands.CreateSample; /// /// Handler for CreateSampleCommand /// public class CreateSampleCommandHandler : IRequestHandler { private readonly IRepository _repository; private readonly IUnitOfWork _unitOfWork; public CreateSampleCommandHandler(IRepository repository, IUnitOfWork unitOfWork) { _repository = repository; _unitOfWork = unitOfWork; } public async Task Handle(CreateSampleCommand request, CancellationToken cancellationToken) { var entity = new SampleEntity { Id = Guid.NewGuid(), Name = request.Name, Description = request.Description, IsActive = true, CreatedAt = DateTime.UtcNow }; await _repository.AddAsync(entity, cancellationToken); await _unitOfWork.SaveChangesAsync(cancellationToken); return entity.Id; } }