Skip to content

Instantly share code, notes, and snippets.

@dcomartin
Created October 21, 2020 21:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dcomartin/bd445b5f23b0def405d31b7dc9973ac7 to your computer and use it in GitHub Desktop.
Save dcomartin/bd445b5f23b0def405d31b7dc9973ac7 to your computer and use it in GitHub Desktop.
public class PurchaseProductHandler : IRequestHandler<PurchaseProduct>
{
private readonly SalesDbContext _dbContext;
private readonly IProductQuery _productQuery;
public PurchaseProductHandler(SalesDbContext dbContext, IProductQuery productQuery)
{
_dbContext = dbContext;
_productQuery = productQuery;
}
public async Task<Unit> Handle(PurchaseProduct request, CancellationToken cancellationToken)
{
var product = await _productQuery.GetProduct(request.ProductId);
var order = new Order
{
OrderId = Guid.NewGuid(),
Items = new List<OrderItem>
{
new OrderItem
{
ProductId = request.ProductId,
Price = product.Price
}
}
};
await _dbContext.Orders.AddAsync(order, cancellationToken);
await _dbContext.SaveChangesAsync();
return Unit.Value;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment