public async Task <IHttpActionResult> PutTask(int id, Task task) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != task.TaskId) { return(BadRequest()); } _db.Entry(task).State = EntityState.Modified; try { await _db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException ex) { if (!TaskExists(id)) { return(NotFound()); } await ex.Log(_db); } return(StatusCode(HttpStatusCode.NoContent)); }
public async Task <IHttpActionResult> PostTask(Task task) { var owner = task.Users[0].Username; task.Users = null; _db.Tasks.Add(task); await _db.SaveChangesAsync(); try { using (var conn = new SqlConnection(_db.Database.Connection.ConnectionString)) { var cmd = new SqlCommand("INSERT INTO UserTask VALUES (@Username, @TaskId);", conn); cmd.Parameters.AddWithValue("@Username", owner); cmd.Parameters.AddWithValue("@TaskId", task.TaskId); conn.Open(); await cmd.ExecuteNonQueryAsync(); } } catch (Exception ex) { await ex.Log(_db); return(InternalServerError()); } return(CreatedAtRoute("DefaultApi", new { id = task.TaskId }, task)); }