public HttpResponseMessage Put(int id, Task task) { using (var unitOfWork = _unitOfWorkFactory.CreateUnitOfWork()) { if (ModelState.IsValid && id == task.Id) { unitOfWork.Repository<Task>().AttachItem(task); try { unitOfWork.SaveChanges(); } catch (DbUpdateConcurrencyException) { return Request.CreateResponse(HttpStatusCode.NotFound); } return Request.CreateResponse(HttpStatusCode.OK); } else { return Request.CreateResponse(HttpStatusCode.BadRequest); } } }
public HttpResponseMessage Post(Task task) { if (ModelState.IsValid) { using (var unitOfWork = _unitOfWorkFactory.CreateUnitOfWork()) { unitOfWork.Repository<Task>().AddItem(task); } HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, task); // response.Headers.Location = new Uri(Url.Link("DefaultApi", new { id = task.Id })); response.Headers.Location = new Uri(Url.Link("PostTask", new { id = task.Id })); return response; } else { return Request.CreateResponse(HttpStatusCode.BadRequest); } }
private bool AreSubtasksDone(Task task) { return task.Subtasks.Count() == task.Subtasks.Count(st => st.IsDone); }