// POST api/Turmas public HttpResponseMessage PostTurma(Turma turma) { if ("Fulano".Equals(turma.Instrutor.Nome)) { return Request.CreateResponse(HttpStatusCode.BadRequest, "Nome do instrutor não pode ser Fulano"); } if ("Ciclano".Equals(turma.Instrutor.Nome)) { return Request.CreateResponse(HttpStatusCode.BadRequest, "Nome do instrutor não pode ser Ciclano"); } if (ModelState.IsValid) { if (turma.Treinamento.Id.HasValue) { turma.Treinamento = db.Treinamentoes.Find(turma.Treinamento.Id); } if (turma.Instrutor.Id.HasValue) { turma.Instrutor = db.Instrutors.Find(turma.Instrutor.Id); } turma = db.Turmas.Add(turma); db.SaveChanges(); HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, db.Turmas.Find(turma.Id)); response.Headers.Location = new Uri(Url.Link("DefaultApi", new { id = turma.Id })); return response; } else { return Request.CreateResponse(HttpStatusCode.BadRequest); } }
// PUT api/Turmas/5 public HttpResponseMessage PutTurma(long id, Turma turma) { if ("Fulano".Equals(turma.Instrutor.Nome)) { return Request.CreateResponse(HttpStatusCode.BadRequest, "Nome do instrutor não pode ser Fulano"); } if ("Ciclano".Equals(turma.Instrutor.Nome)) { return Request.CreateResponse(HttpStatusCode.BadRequest, "Nome do instrutor não pode ser Ciclano"); } if (ModelState.IsValid) { var entidade = db.Turmas.Find(id); entidade.Inicio = turma.Inicio; entidade.Fim = turma.Fim; if (turma.Treinamento.Id.HasValue) { entidade.Treinamento = db.Treinamentoes.Find(turma.Treinamento.Id); } else { entidade.Treinamento = new Treinamento { Nome = turma.Treinamento.Nome }; } if (turma.Instrutor.Id.HasValue) { entidade.Instrutor = db.Instrutors.Find(turma.Instrutor.Id); } else { entidade.Instrutor = new Instrutor { Nome = turma.Instrutor.Nome }; } //turma.Id = id; //db.Turmas.Attach(turma); //db.Entry(turma).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { return Request.CreateResponse(HttpStatusCode.NotFound); } return Request.CreateResponse(HttpStatusCode.OK, entidade); } else { return Request.CreateResponse(HttpStatusCode.BadRequest); } }