// GET: odata/ItemsOfOrdersByOrder(5) //[EnableQuery] //public IQueryable<ItemsOfOrder> GetItemOfOrders(int key) //{ // return db.ItemsOfOrders.Where(itemOfOrder => itemOfOrder.OrderID == key); //} // POST: odata/ItemsOfOrder public async Task <IHttpActionResult> Post(ItemsOfOrder itemsOfOrder) { db.ItemsOfOrders.Add(itemsOfOrder); await db.SaveChangesAsync(); return(Created(itemsOfOrder)); }
// POST: odata/Orders public async Task <int> Post() { var bodyString = Request.Content.ReadAsStringAsync().Result; var neworder = JsonConvert.DeserializeObject <NewOrder>(bodyString); for (int i = 0; i < neworder.ProductsID.Count(); i++) { neworder.Cost += db.Products.Find(neworder.ProductsID.ElementAt(i)).Cost *neworder.ProductsAmount.ElementAt(i); } Order order = new Order { UserID = neworder.UserID, StatusO = neworder.StatusO, Cost = neworder.Cost }; db.Orders.Add(order); await db.SaveChangesAsync(); Created(order); int orderID = db.Orders.ToList().Last().OrderID; for (int i = 0; i < neworder.ProductsID.Count(); i++) { decimal newAmount = db.Products.Find(neworder.ProductsID.ElementAt(i)).Amount - neworder.ProductsAmount.ElementAt(i); if (newAmount < 0) { neworder.ProductsAmount[i] = neworder.ProductsAmount[i] + newAmount; newAmount = 0; } db.Products.Find(neworder.ProductsID.ElementAt(i)).Amount = newAmount; Updated(db.Products.Find(neworder.ProductsID.ElementAt(i))); ItemsOfOrder itemsOfOrder = new ItemsOfOrder { ProductID = neworder.ProductsID[i], OrderID = orderID, Amount = neworder.ProductsAmount[i], Cost = db.Products.Find(neworder.ProductsID.ElementAt(i)).Cost *neworder.ProductsAmount.ElementAt(i) }; db.ItemsOfOrders.Add(itemsOfOrder); await db.SaveChangesAsync(); Created(itemsOfOrder); } return(orderID); }