public sealed record CreateProductCommand(string Name, string? Description, string Code, decimal Price);
public class Product : BaseAuditableEntity
{
public required string Name { get; set; }
public string? Code { get; set; }
public string? Description { get; set; }
public decimal Price { get; set; }
}
public async Task<Result> Handle(CreateProductCommand request, CancellationToken cancellationToken)
{
var product = _mapper.Map<Product>(request);
product.AddDomainEvent(new CreatedEvent<Product>(product));
_unitOfWork.Products.Insert(product);
await _unitOfWork.SaveChangesAsync(cancellationToken);
return Result.Success();
}
public sealed record CreateProductCommand(string Name, string? Description, string Code, decimal Price);
public class Product : BaseAuditableEntity
{
public required string Name { get; set; }
public string? Code { get; set; }
public string? Description { get; set; }
public decimal Price { get; set; }
}
public async Task<Result> Handle(CreateProductCommand request, CancellationToken cancellationToken)
{
var product = _mapper.Map<Product>(request);
product.AddDomainEvent(new CreatedEvent<Product>(product));
_unitOfWork.Products.Insert(product);
await _unitOfWork.SaveChangesAsync(cancellationToken);
return Result.Success();
}