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;
}
}