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()); }
public async Task UpdateTodo(Todo todo) { try { await _todoRepository.Update(todo); } catch (Exception e) { throw e; } }
public async Task <ActionResult <TodoItem> > Put(string id, [FromBody] EditTodoRequest value) { var result = await repository.Update(id, value); if (result != null) { await cache.Invalidate(id); return(AcceptedAtAction(nameof(Get), new { id }, result)); } else { return(NotFound()); } }