Beispiel #1
0
        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));
        }
Beispiel #2
0
        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));
        }