public async Task <ActionResult <ProductResponseDTO> > PartialUpdateAsync(long id, JsonPatchDocument <ProductUpdateRequestDTO> productDoc) { ProductResponseDTO updatedProduct; try { var product = new ProductUpdateRequestDTO(); productDoc.ApplyTo(product, ModelState); TryValidateModel(product); if (!ModelState.IsValid) { return(BadRequest(ModelState)); } updatedProduct = await _service.PartialUpdateAsync(id, product); } catch (ProductNotFoundException) { return(NotFound()); } catch (Exception e) { _logger.LogError(e.Message); _logger.LogError(e.StackTrace); return(StatusCode(500)); } return(Ok(updatedProduct)); }
public async Task <ProductResponseDTO> PartialUpdateAsync(long id, ProductUpdateRequestDTO product) { var currentProduct = await _repository.FindByIdAsync(id); if (currentProduct == null) { throw new ProductNotFoundException(String.Format("Product with the id '{0}' was not found", id)); } _mapper.Map(product, currentProduct); await _repository.SaveChangesAsync(); return(_mapper.Map <ProductResponseDTO>(currentProduct)); }