public async Task <ActionResult <TodoGetSingleResponse> > PutTodo(int todoId, TodoPutRequest todoPutRequest) { var todo = await _todoRepository.GetTodo(todoId); if (todo == null) { return(NotFound()); } todoPutRequest.Title = string.IsNullOrEmpty(todoPutRequest.Title) ? todo.Title : todoPutRequest.Title; todoPutRequest.Description = string.IsNullOrEmpty(todoPutRequest.Description) ? todo.Description : todoPutRequest.Description; todoPutRequest.DateDeadline = todoPutRequest.DateDeadline.HasValue ? todoPutRequest.DateDeadline : todo.DateDeadline; todoPutRequest.DateCompleted = todoPutRequest.DateCompleted.HasValue ? todoPutRequest.DateCompleted : todo.DateCompleted; var savedTodo = await _todoRepository.PutTodo(todoId, todoPutRequest); _cache.Remove(todoId); return(savedTodo); }