public async Task <IHttpActionResult> PutTask(int id, Models.Task task) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != task.Id) { return(BadRequest()); } string userId = ClaimsPrincipal.Current.FindFirst(ObjectIdClaimType).Value; if (task.Owner != userId) { return(StatusCode(HttpStatusCode.Forbidden)); } task.DateModified = DateTime.UtcNow; db.Entry(task).State = EntityState.Modified; try { await db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!TaskExists(id)) { return(NotFound()); } else { throw; } } return(Ok(task)); }