public async Task <IActionResult> PartiallyUpdateItem([FromRoute] Guid id, [FromBody] JsonPatchDocument <ItemToUpdateDto> patch) { var dto = new ItemToUpdateDto(); if (patch is null) { return(BadRequest()); } patch.ApplyTo(dto); var resource = await _itemQuery.ExecuteGetResourceByIdWithTracking(id); if (resource is null) { return(NotFound()); } _itemsCommand.ExecuteUpdateResource(resource, dto); if (!(await _itemsCommand.ExecuteSaveAsync())) { throw new Exception("There was a problem with updating item resource"); } return(NoContent()); }
public void UpdateResource(Item resource, ItemToUpdateDto dto) { resource.Name = string.IsNullOrWhiteSpace(dto.Name) ? resource.Name : dto.Name; resource.isCompleted = dto.Status.Trim().ToLower().Contains("completed") ? true : resource.isCompleted; resource.isCompleted = dto.Status.Trim().ToLower().Contains("incomplete") ? false : resource.isCompleted; resource.Completed = resource.isCompleted && (resource.Completed == DateTimeOffset.MinValue) ? DateTimeOffset.UtcNow : resource.Completed; }
public void ExecuteUpdateResource(Item resource, ItemToUpdateDto dto) { _context.UpdateResource(resource, dto); }