public ActionResult Orderdet(int id) { RejestrZamowien rj = (from data in _db.RejestrZamowien where data.NrZamowienia == id select data ).First(); ViewData["Msg"] = "Szczegóły zamówienia nr:" + rj.NrZamowienia + " o wartości:" + rj.WartoscZamowienia; List <decimal> nrprod = (from pz in _db.Pozycja_Zamowienia where pz.NrZamowienia == id select pz.NrProduktu).ToList(); ; /* LINQ to SQL... :/ not entities * List<Produkt> prod = (from p in _db.Produkt * where nrprod.Contains(p.NrProduktu) * select p).ToList(); */ //List<Produkt> prod var pprod = _db.Produkt.Where(BuildContainsExpression <Produkt, decimal>(e => e.NrProduktu, nrprod)); return(View(pprod)); }
/* wpisanie zamówienia do bd */ public ActionResult CheckOut2(IEnumerable <Produkt> ct) { Response.AppendHeader("X-XSS-Protection", "0"); int x = ct.Count(); //ct zawsze puste // docelowo z ct pobieranie listy produktów //zabezpieczyć przed nullami char cut = '.'; var cook = HttpContext.Request.Cookies.Get(User.Identity.Name + "myCookieCart"); string what = cook.Value; string[] words = what.Split(cut); List <Produkt> cart_products = new List <Produkt>(); foreach (var word in words) { //try parse? if (word != "") { int i = Int32.Parse(word); cart_products.Add((from n in _db.Produkt where n.NrProduktu == i select n).First()); } } if (cart_products.Count > 0) { RejestrZamowien zam = new RejestrZamowien(); //dodanie do bazy. string klient_name = this.User.Identity.Name; //pobranie nr klienta. var nr_klienta = (from c in _db.Klinet where c.Login == klient_name select c.NrKlienta).First(); //obliczanie wartości zamówienia decimal money = 0; foreach (Produkt prod in cart_products) { money += (from w in _db.Produkt where w.NrProduktu == prod.NrProduktu select w.CenaJednostkowa).First(); } zam.NrKlienta = nr_klienta; zam.RodzajTranzakcji = "fv"; zam.WartoscZamowienia = money; zam.Data = DateTime.Now; _db.AddToRejestrZamowien(zam); _db.SaveChanges(); //nr zamówienia - b. niebezpieczne!! last... nie ma nic innego distinctowanego! /* * var nr_zam = (from z in _db.RejestrZamowien * orderby z.NrZamowienia descending * where z.NrKlienta == nr_klienta * select z.NrZamowienia).First(); */ var nr_zam = zam.NrZamowienia; //dla każdego produktu dodanie pozycji zamówienia Pozycja_Zamowienia pz; foreach (Produkt prod in cart_products) { pz = new Pozycja_Zamowienia(); pz.NrZamowienia = nr_zam; pz.NrProduktu = prod.NrProduktu; _db.AddToPozycja_Zamowienia(pz); } _db.SaveChanges(); ViewData["1"] = "Twoje zamówienie zostało przyjęte do realizacji."; ViewData["2"] = "Możesz kontrolować stan Twojego zamówienia w zakładce Zamówienia."; //kasowanie ciasteczka - nie działało /* * HttpCookie objCookie = new HttpCookie(User.Identity.Name + "myCookieCart"); * Response.Cookies.Clear(); * Response.Cookies.Add(objCookie); * objCookie.Values.Add(User.Identity.Name + "myCookieCart", "."); * DateTime dtExpiry = DateTime.Now.AddDays(1); * Response.Cookies[User.Identity.Name + "myCookieCart"].Expires = dtExpiry; */ var newCookie = new HttpCookie(User.Identity.Name + "myCookieCart", "."); newCookie.Expires = DateTime.Now.AddDays(1); Response.AppendCookie(newCookie); return(View()); } else { ViewData["1"] = "Nie można zrealizować pustego zamówienia."; ViewData["2"] = "Najpierw dodaj produkty do koszyka."; return(View()); } }