public HttpResponseMessage AddOrder(JObject jsonBody) { JObject products = (JObject)jsonBody["ProductsInPurchaseOrders"]; // this variable must be present in the javascript jsonBody.Remove("ProductsInPurchaseOrders"); PurchaseOrder wholesaleOrder = jsonBody.ToObject <PurchaseOrder>(); // the job card object wholesaleOrder.AccountId = User.Identity.GetUserId(); db.PurchaseOrders.Add(wholesaleOrder); db.SaveChanges(); int wholesaleOrderId = wholesaleOrder.OrderId; // the foregin key to be used for the -> proudcts JEnumerable <JToken> tokens = (JEnumerable <JToken>)products.Children <JToken>(); foreach (JToken token in tokens) { JToken productJson = token.Children().First(); ProductInPurchaseOrder productInstance = productJson.ToObject <ProductInPurchaseOrder>(); productInstance.PurchaseOrderId = wholesaleOrderId; db.ProductsInPurchaseOrders.Add(productInstance); } db.SaveChanges(); return(this.Request.CreateResponse(HttpStatusCode.Created, wholesaleOrderId)); }
public IHttpActionResult UpdateProductInWholesaleOrder(ProductInPurchaseOrder product) { if (!WholesaleOrderExists(product.PurchaseOrderId)) { return(StatusCode(HttpStatusCode.NotModified)); } // else db.Entry(product).State = EntityState.Modified; db.SaveChanges(); return(StatusCode(HttpStatusCode.Created)); }