public async Task <ActionResult <TodoTaskResource> > Put(int id, [FromBody] TodoTaskResource saveTodoTaskResource) { var validator = new SaveTodoTaskResourceValidator(); var validationResult = await validator.ValidateAsync(saveTodoTaskResource); var requestIsInvalid = id == 0 || !validationResult.IsValid; if (requestIsInvalid) { return(BadRequest(validationResult.Errors)); } var taskTodoToBeUpdate = await _todoTaskService.GetTodoTaskById(id); if (taskTodoToBeUpdate == null) { return(NotFound()); } var todoTask = _mapper.Map <TodoTaskResource, TodoTask>(saveTodoTaskResource); todoTask.LastModifiedDate = DateTime.Now; await _todoTaskService.UpdateStatusTodoTask(taskTodoToBeUpdate, todoTask); var updatedTodoTask = await _todoTaskService.GetTodoTaskById(id); var updatedTodoTaskResource = _mapper.Map <TodoTask, TodoTaskResource>(updatedTodoTask); return(Ok(updatedTodoTaskResource)); }