public async Task <ActionResult <Dto.Coffee> > CreateCoffee([FromBody] Dto.CoffeePostRequest request, CancellationToken cancellationToken) { var cmd = new AddCoffeeCommand { Name = Name <Coffee> .Create(request.Name !), Description = Description.Create(request.Description !), Price = UsdPrice.Create(request.PriceInUsd !.Value), NetWeightPerBag = Ounces.Create(request.WeightPerBagInOz !.Value), }; var coffee = await _mediator.Send(cmd, cancellationToken); return(Created($"/api/v1/coffees/{coffee.Id}", new Dto.Coffee { Id = coffee.Id, Name = coffee.Name, Description = coffee.Description, PriceInUsd = coffee.Price, WeightPerBagInOz = coffee.NetWeightPerBag, })); }
public async Task <ActionResult <Dto.Coffee> > UpdateCoffee(Guid id, [FromBody] Dto.CoffeePostRequest request, CancellationToken cancellationToken) { var cmd = new UpdateCoffeeCommand { CoffeeId = Id <Coffee> .From(id), Name = request.Name != null ? Name <Coffee> .Create(request.Name) : null, Description = request.Description != null?Description.Create(request.Description) : null, Price = request.PriceInUsd.HasValue ? UsdPrice.Create(request.PriceInUsd.Value) : null, WeightPerBag = request.WeightPerBagInOz.HasValue ? Ounces.Create(request.WeightPerBagInOz.Value) : null, }; var coffee = await _mediator.Send(cmd, cancellationToken); return(Accepted($"/api/v1/coffees/{coffee.Id}", new Dto.Coffee { Id = coffee.Id, Name = coffee.Name, Description = coffee.Description, PriceInUsd = coffee.Price, WeightPerBagInOz = coffee.NetWeightPerBag, })); }