// POST odata/Todos public IHttpActionResult Post(TodoItem todoItem) { if (!ModelState.IsValid) { return BadRequest(ModelState); } TodoList todoList = FindTodoList(todoItem.TodoListId); if (todoList == null) { return BadRequest("Todo list does not exist"); } todoList.Todos.Add(todoItem); db.SaveChanges(); return Created(todoItem); }
// PUT odata/Todos(5) public IHttpActionResult Put([FromODataUri] int key, TodoItem todoItem) { if (!ModelState.IsValid) { return BadRequest(ModelState); } if (key != todoItem.TodoItemId) { return BadRequest(); } if (!GetTodoItemQuery(key).Any()) { return NotFound(); } db.Entry(todoItem).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!TodoItemExists(key)) { return NotFound(); } else { throw; } } return Updated(todoItem); }