public IEnumerable <Todo> Put([FromBody] Todo todo) { if (ModelState.IsValid) { // Carefully replace editable fields being mindful of what is being tracked by EF ... var oldTodo = Get(todo.Id).First(); oldTodo.Task = todo.Task; oldTodo.DueDate = todo.DueDate; var now = DateTime.Now.ToUniversalTime(); if (todo.TodoComments != null) { foreach (var c in todo.TodoComments) { var oldComment = todosRepository.GetTodoComment(c.Id); if (oldComment.Text != c.Text) { oldComment.Text = c.Text; oldComment.UpdatedOn = now; } } } todosRepository.Update(oldTodo); } return(Get()); }