public async Task <Result <BackpackItemModel> > Handle(UpdateBackpackItem request, CancellationToken cancellationToken) { var isValid = await _validator.IsValidAsync(request); if (!isValid) { return(Result.Failure <BackpackItemModel>("Validation failed")); } var backpackItem = await _context.BackpackItems.FirstAsync(x => x.Id == request.ItemId, cancellationToken); backpackItem.Name = request.BackpackItem.Name; backpackItem.BackpackCategory = request.BackpackItem.CategoryType; backpackItem.Amount = request.BackpackItem.Amount; backpackItem.ExpirationDate = request.BackpackItem.ExpirationDate; await _context.SaveChangesAsync(cancellationToken); return(new BackpackItemModel { Id = backpackItem.Id, Amount = backpackItem.Amount, CategoryType = backpackItem.BackpackCategory, ExpirationDate = backpackItem.ExpirationDate }); }
public async Task <ActionResult <BackpackItemModel> > UpdateBackpackItemAsync([FromRoute] Guid itemId, [FromBody] BackpackItemRequest backpackItem) { var sub = User.Claims.FirstOrDefault(c => c.Type == "sub")?.Value; var command = new UpdateBackpackItem(sub, itemId, backpackItem); var result = await _mediator.Send(command); if (result.IsFailure) { return(BadRequest()); } return(Ok(result.Value)); }