public async Task <IActionResult> UpdateItem(int id, [FromBody] SaveItemResource saveItemResource) { var currentItem = await _itemService.GetItemById(id); if (currentItem == null) { return(NotFound()); } bool IsValid = await CheckIfUserIsItemSeller(id); if (!IsValid) { return(Unauthorized()); } var validator = new SaveItemResourceValidator(); ValidationResult results = await validator.ValidateAsync(saveItemResource); if (!results.IsValid) { return(BadRequest(results.Errors)); } Item modifiedItem = _mapper.Map <SaveItemResource, Item>(saveItemResource); await _itemService.UpdateItem(currentItem, modifiedItem); Item updatedItem = await _itemService.GetItemById(id); ItemResource updatedItemResource = _mapper.Map <Item, ItemResource>(updatedItem); return(Ok(updatedItemResource)); }