public ActionResult AlterOrder(OrderItemCombined i, int inputAmount) { // check of object word meegegeven if (i == null) { // standaardfoutmelding yeey return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } // arnold? waarom is dit zo lang? kan dit niet worden : zie volgende regel // Item it3 = orderItem.GetItem(Convert.ToInt32(o.ItemId2)); Item item = orderItem.GetItem(i.ItemId); int id2 = (int.TryParse(i.ItemId2.ToString(), out id2)) ? id2 : 0; // lijst allOrders vullen met Orders List<Order> allOrders = orderItem.GetOrders(i.WishlistCode); // index aanmaken int index = 0; // kijken of id2 niet null is if (id2 == 0) { // zoek index op index = allOrders.FindIndex(it => it.ItemId == i.ItemId); } // id2 niet null else { // vul item2 dan dmv id2 met de methode orderitem.GetItem Item item2 = orderItem.GetItem(id2); // vul dan de index met de index van de order waar itemid en itemid2 allebij zijn index = allOrders.FindIndex(it => it.ItemId == i.ItemId && it.ItemId2 == id2); } // order is de order met de juiste index van de lijst allOrders Order order = allOrders[index]; // hoeveelheid kaartjes is innputAmount order.Amount = inputAmount; // nu snap k t niet. Dit is toch de else van hierboven? if (id2 != 0) { //order totalprice is 67.99 (vaste prijs) * het aantal kaarten order.TotalPrice = (order.Amount * 67.99); } else { //order totalprice is aantal kaarten * itemprijs order.TotalPrice = (order.Amount * item.Price); } // attach order aan de db db.Orderlines.Attach(order); // geef aan dat de status van de entry is aangepast. db.Entry(order).State = EntityState.Modified; // sla veranderingen in de db op db.SaveChanges(); // laadt de pagina opnieuw return Redirect(Request.UrlReferrer.ToString()); }
public ActionResult DeleteOrder(OrderItemCombined i, bool? hiddenDeleteKnopBoolVal) { // kijken of het object niet null is if (i == null) { // standaard foutmelding.. return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } // haal de juiste order op dmv wishlistcode en itemId Order order = orderItem.GetOrder(i.WishlistCode, i.ItemId); // Wil de gebruiker de order bewaren? if (hiddenDeleteKnopBoolVal == true) { List<Order> orders = new List<Order>(); string code2 = ""; // als deze session leeg is if (Session["code2"] == null) { // haal dan een nieuwe code op code2 = wishlistRepository.getTempCode(); // sla dat in de session op Session["code2"] = code2; // lijst vullen met orders die de orginele wishlistcode hebben orders = orderItem.GetOrders(Session["code"].ToString()); // bool codealready aanmaken op false zetten bool CodeAlready = false; // als de wishlist tabel een instantie bevat van de wishlist code if (db.Wishlists.Any(wo => wo.WishlistCode == code2)) CodeAlready = true; // als de codeAlready bool niet true is if (!CodeAlready) { // maak een nieuwe instantie van wishlist aan Wishlist w = new Wishlist(); // vul die instantie van wishlist met met de code w.WishlistCode = code2; // add nieuwe row in de tabel met de info uit wishlist w db.Wishlists.Add(w); // sla veranderingen op db.SaveChanges(); } // voor elke order in de lijst orders foreach (Order o in orders) { // koppel o aan de db in de tabel Orderlines db.Orderlines.Attach(o); // laat weten dat o veranderd word db.Entry(o).State = EntityState.Modified; // verander de wishlistcode van code naar code2 o.WishlistCode = Session["code2"].ToString(); // sla veranderingen op db.SaveChanges(); } // maak een instantie voor de oude order met de order die wishlistcode2 en i.itemID heeft Order oldOrder = orderItem.GetOrder(Session["code2"].ToString(), i.ItemId); // koppel oldOrder aan de db in de tabel Orderlines db.Orderlines.Attach(oldOrder); // laat weten dan oldOrder is aangepast db.Entry(oldOrder).State = EntityState.Modified; // oude wishlistcode toevoegen aan oude order oldOrder.WishlistCode = Session["code"].ToString(); // sla wijzigingen op db.SaveChanges(); } // als code2 niet null is else { // attach dan de order die mee word gegeven db.Orderlines.Attach(order); // geef aan dat order in de db word aangepast db.Entry(order).State = EntityState.Modified; // order krijgt nu wishlist code order.WishlistCode = Session["code"].ToString(); // sla wijzigingen op db.SaveChanges(); } } // !Throw away completely! else { // attach order aan de db db.Orderlines.Attach(order); // haal order uit de db db.Orderlines.Remove(order); // sla wijzigingen op db.SaveChanges(); } // !Throw away completely! // refresh return Redirect(Request.UrlReferrer.ToString()); }
// GET: Reservation public ActionResult Index() { // nieuwe lijst Orders aanmaken List<Order> allOrders = new List<Order>(); // string code aanmaken string code = ""; // als iemand al z'n order heeft gepslitst if (Session["code2"] != null) { // nieuwe wishlistcode ophalen code = Session["code2"].ToString(); // orders ophalen met nieuwe wishlistcode allOrders = orderItem.GetOrders(code); // als de nieuwe order lijst leeg is (Zou in theorie niet mogen) if (allOrders.Count == 0) { // haal dan de originele wishlist op. (die dan als t goed is wel gevuld zou moeten zijn) allOrders = orderItem.GetOrders(Session["code"].ToString()); } } // nog niet de order gesplitst else { // wishlistcode ophalen zoals het origineel code = Session["code"].ToString(); // orders ophalen allOrders = orderItem.GetOrders(code); } // items ophalen List<Item> allItems = new List<Item>(); // lijst van het gecombineerde model aanmaken List<OrderItemCombined> allCombined = new List<OrderItemCombined>(); // voor elke Order in allOrders foreach (Order o in allOrders) { // haal de info van het item op dmv ItemId Item q = orderItem.GetItem(o.ItemId); // maak een instantie van het gecombineerde model aan OrderItemCombined combined = new OrderItemCombined(); // combined met de orderinfo vullen combined.ItemId = o.ItemId; combined.Amount = o.Amount; combined.TotalPrice = o.TotalPrice; combined.WishlistCode = o.WishlistCode; combined.ItemId2 = o.ItemId2; // variabelen maken vullen met Item 'q' voor het opslaan van juiste items als itemID 2 is gevuld (dus FF ticket) string name = q.Name; // pak het einde van de film tijd DateTime realEnding = q.DateEnd; double? realPricing = q.Price; // in het geval dat itemId 2 niet null is en het dus een FF ticket is. if (combined.ItemId2 != null) { // arnold? waarom is dit zo lang? kan dit niet worden : zie volgende regel // Item it3 = orderItem.GetItem(Convert.ToInt32(o.ItemId2)); int item2 = (int.TryParse(o.ItemId2.ToString(), out item2)) ? Convert.ToInt32(o.ItemId2) : 0; Item it2 = orderItem.GetItem(item2); // Item Name variabele is item1 name plus & plus item2 name name = q.Name + " & " + it2.Name; // realEnding variabele vullen met item2 dateEnd realEnding = it2.DateEnd; // realpricing FF ticket itemID1 totaalprijs realPricing = o.TotalPrice; } // combined met de iteminfo vullen combined.DateBegin = q.DateBegin; combined.DateEnd = realEnding; combined.EventType = q.EventType; combined.Image = q.Image; combined.Location = q.Location; combined.MaxAvailabillity = q.MaxAvailabillity; combined.Name = name; combined.Price = realPricing; // vul de lijst van het gecombineerde model met de instantie van het gecombineerde model allCombined.Add(combined); } // return lijstje van het gecombineerde model (als het goed is gevuld) return View(allCombined); }
//Index word uitgevoerd bij laden pagina. public ActionResult Index() { //List voor Combined Model van Order en Item List<OrderItemCombined> allCombined = new List<OrderItemCombined>(); //Controleren of we al begonnen zijn. if (Session["code"] != null) { //Session in een mooie variabel zetten string Code = Session["code"].ToString(); //Alle orders in een List op basis van Code List<Order> allOrders = new List<Order>(); allOrders = orderItem.GetOrders(Code); //Alle orders in de List doorlopen foreach (Order o in allOrders) { //Pak item van Order Item it = orderItem.GetItem(o.ItemId); //Maak een Combined objectje aan OrderItemCombined combined = new OrderItemCombined(); //Order combined.ItemId = o.ItemId; combined.Amount = o.Amount; combined.TotalPrice = o.TotalPrice; combined.WishlistCode = o.WishlistCode; combined.ItemId2 = o.ItemId2; //De volgende variabelen worden mogelijk aangepast indien ItemId2 (ivm F&F) ook gevuld is. string Name = it.Name; DateTime realEnding = it.DateEnd; double? realPricing = it.Price; if (combined.ItemId2 != null) { int item2 = (int.TryParse(o.ItemId2.ToString(), out item2)) ? Convert.ToInt32(o.ItemId2) : 0; Item it2 = orderItem.GetItem(item2); //Item Name = it.Name + " & " + it2.Name; realEnding = it2.DateEnd; realPricing = o.TotalPrice; } //Item combined.AgeClassification = it.AgeClassification; combined.Cast = it.Cast; combined.DescriptionENG = it.DescriptionENG; combined.DescriptionNL = it.DescriptionNL; combined.Director = it.Director; combined.Length = it.Length; combined.Year = it.Year; combined.DateBegin = it.DateBegin; combined.DateEnd = realEnding;// it.DateEnd; combined.EventType = it.EventType; combined.Image = it.Image; combined.MaxAvailabillity = it.MaxAvailabillity; combined.Name = Name; combined.Price = realPricing;//it.Price; //En voeg het toe aan de List. allCombined.Add(combined); } } //PartialView omdat het een PartialView is. //allCombined naar View return PartialView(allCombined); }