Example #1
0
        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
            });
        }
Example #2
0
        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));
        }