public async Task <IActionResult> CreateItem([FromBody] SaveItemResource saveItemResource) { saveItemResource.SellerId = getUserId(); var validator = new SaveItemResourceValidator(); ValidationResult results = validator.Validate(saveItemResource); if (!results.IsValid) { return(BadRequest(results.Errors)); } Item itemToCreate = _mapper.Map <SaveItemResource, Item>(saveItemResource); var newItem = await _itemService.CreateItem(itemToCreate); if (newItem == null) { return(NotFound()); } var item = await _itemService.GetItemById(newItem.Id); // map item to itemResource before returning in an OkResult object ItemResource itemResource = _mapper.Map <Item, ItemResource>(item); return(Ok(itemResource)); }
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)); }