Example #1
0
        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());
        }
Example #2
0
        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;
        }
Example #3
0
 public void ExecuteUpdateResource(Item resource, ItemToUpdateDto dto)
 {
     _context.UpdateResource(resource, dto);
 }