示例#1
0
        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));
        }
示例#2
0
        /* 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());
            }
        }