private IHttpActionResult UpdatedOrder(int id, Order order) { db.Entry(order).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!OrderExists(id)) { return NotFound(); } else { throw; } } Order orderUpdated = db.Orders.Find(id); return Ok(orderUpdated); }
public IHttpActionResult PutOrder(int id, Order order) { if (!ModelState.IsValid) { return BadRequest(ModelState); } if (id != order.Id) { return BadRequest(); } return UpdatedOrder(id, order); }
private bool IsAuthorized(Order order) { bool isAuthorized = false; if (User.IsInRole("ADMIN")) { Trace.TraceInformation("Usuário com papel ADMIN"); isAuthorized = true; } if (User.Identity.Name.Equals(order.userName)) { Trace.TraceInformation("Usuário dono do pedido."); isAuthorized = true; } return isAuthorized; }
public IHttpActionResult PostOrder(Order order) { if (order == null) { return BadRequest("O pedido está vazio."); } if (!ModelState.IsValid) { return BadRequest(ModelState); } foreach (OrderItem item in order.OrderItems) { if (item.Quantidade <= 0) { return BadRequest("Um ou mais produtos não contém uma quantidade válida."); } } order.Status = Novo; order.PesoTotal = 0; order.PrecoFrete = 0; order.PrecoTotal = 0; order.DataPedido = DateTime.Now; order.DataEntrega = DateTime.Now; db.Orders.Add(order); db.SaveChanges(); return CreatedAtRoute("DefaultApi", new { id = order.Id }, order); }