//CREATE //This should take CUSTOMER ID, SHIPPING DETAILS, ARRAY OF LINE ITEMS & CREATE ORDER public void CreateOrder(OrderDetails newOrder) { //Console.WriteLine($"Order date: {newOrder.Date}"); LineItemManager linemgr = new LineItemManager(); using (var context = DbContextFactory.Create()) //no 'NEW' b/c of static class { try { //Add order context.OrderDetails.Add(newOrder); context.SaveChanges(); //For each line in newOrder, update it with new ID foreach (LineItem l in newOrder.Lineitems) { //linemgr.UpdateLineItem(l); //Console.WriteLine(l.OrderDetailsId); } Console.WriteLine($"Order #{newOrder.Id} added."); } catch (Exception) { Console.WriteLine("Unable to add order...."); } } }
//UPDATE public void UpdateOrder(OrderDetails ord) { LineItemManager linemgr = new LineItemManager(); using (var context = DbContextFactory.Create()) //no 'NEW' b/c of static class { try { //Locate order var query = context.OrderDetails.FirstOrDefault(a => a.Id == ord.Id); Console.WriteLine(query.Id); //Update values //If Id matches... if (query.Id == ord.Id) { Console.WriteLine("Query id matches passed value..."); query.OrderStatus = ord.OrderStatus; query.Shipmethod.Id = ord.Shipmethod.Id; //Then Save changes to order context.Entry(query).State = EntityState.Modified; context.SaveChanges(); if (ord.Lineitems != null) { Console.WriteLine("UPDATED ORDER HAS LINES "); //Update each line item foreach (LineItem l in ord.Lineitems) { //if new line item, create it -- will contain order ID if (l.Id == 0) { linemgr.CreateLineItem(l); } else { //Update linemgr.UpdateLineItem(l); } }// end foreach ql @ line (in query) } Console.WriteLine($"Order ID# {ord.Id} updated successfully."); }//end id match } catch (Exception) { Console.WriteLine("\t** Unable to update Order."); } } }//end update