Ejemplo n.º 1
0
        public async Task <ActionResult> PartialUpdateTodo([FromRoute] int id, [FromBody] JsonPatchDocument <TodoUpdateDTO> patch)
        {
            var request  = new PatchTodoCommand(User.Identity?.Name, id, patch);
            var response = await _mediator.Send(request);

            return(response.Match <ActionResult>(
                       ok => NoContent(),
                       notFound => NotFound()
                       ));
        }
Ejemplo n.º 2
0
        public async Task <OneOf <Ok, NotFound> > Handle(PatchTodoCommand request, CancellationToken cancellationToken)
        {
            var userTodo = await _todosRepository
                           .GetAsync(todo => todo.Id == request.Id);

            if (userTodo == null)
            {
                return(new NotFound());
            }

            var todoToPatch = userTodo.ToUpdateDTO();

            request.Patch.ApplyTo(todoToPatch);

            userTodo.MapUpdateDTO(todoToPatch);

            await _todosRepository.SaveChangesAsync();

            return(new Ok());
        }