Пример #1
0
        /// <summary>
        /// metoda ktora powoduje przekazanie odpowiedniemu widokowi dane o pozycjach koszyka znajdujacych sie w koszyku zalogowanej osoby, dane kosztow popszczegolnych pozycji koszyka, kosztow wszystkich pozycji koszyka oraz dane o tym, czy ilosc danego produktu w koszyku poprawnie ulegla zwiekszeniu
        /// </summary>
        /// <param name="mess">
        /// parametr zawierajacy informacje o tym czy ilosc produktu w koszyku zostala poprawnie zwiekszona czy tez nie, przyjmuje wartosc null gdy ilosc produktu w koszyku nie probowala byc zwiekszona
        /// </param>
        public ActionResult Koszyk(String mess)
        {
            string fullPath  = Request.MapPath(@"~/zserializowane/pozycjeKoszykow.xml");
            string fullPath3 = Request.MapPath(@"~/zserializowane/produkty.xml");
            string fullPath4 = Request.MapPath(@"~/zserializowane/katalogi.xml");

            List <PozycjaKoszyka>   pozycjeKoszykow = Dane.dajPozycje(1, fullPath);
            List <Produkt>          produkty        = Dane.dajProdukty(fullPath3);
            List <KatalogProduktow> katalogi        = Dane.dajKatalogi(fullPath4);

            List <KatalogProduktow> katalogiZKoszyka = new List <KatalogProduktow>();
            List <Produkt>          produktyZKoszyka = new List <Produkt>();
            List <float>            cenyZKoszyka     = new List <float>();
            float sumaCen = 0;

            foreach (PozycjaKoszyka p in pozycjeKoszykow)
            {
                Produkt          pr       = produkty.Find(x => x.idProduktu == p.ProduktIdProduktu);
                KatalogProduktow kp       = katalogi.Find(x => x.idKatalogu == pr.katalogProduktowIdKatalogu);
                float            calkCena = p.ilosc * pr.cena;
                produktyZKoszyka.Add(pr);
                katalogiZKoszyka.Add(kp);
                cenyZKoszyka.Add(calkCena);
                sumaCen += calkCena;
            }

            ViewBag.Pozycje         = pozycjeKoszykow;
            ViewBag.ProduktyPozycji = produktyZKoszyka;
            ViewBag.KatalogiPozycji = katalogiZKoszyka;
            ViewBag.CenyPozycji     = cenyZKoszyka;
            ViewBag.Koszt           = sumaCen;
            ViewBag.NoteFromBasket  = mess;
            return(View());
        }
Пример #2
0
        /// <summary>metoda, ktora usuwa pozycje koszykazalogowanej osoby, ktora zawiera dany produkt</summary>
        /// <param name="index">parametr zaiwerajcy informacje o tym ktory produkt chcemy usunac z pozycji koszyka zalogowanej osoby</param>
        public ActionResult Delete(int index)
        {
            string fullPath  = Request.MapPath(@"~/zserializowane/pozycjeKoszykow.xml");
            string fullPath3 = Request.MapPath(@"~/zserializowane/produkty.xml");

            List <PozycjaKoszyka> pozycjeKoszykow = Dane.dajPozycje(1, fullPath);
            List <Produkt>        produkty        = Dane.dajProdukty(fullPath3);

            PozycjaKoszyka pk0 = pozycjeKoszykow.Find(x => x.ProduktIdProduktu == index);

            pozycjeKoszykow.Remove(pk0);

            Dane.wezPozycje(pozycjeKoszykow);
            return(RedirectToAction("Koszyk", "Koszyk"));
        }
Пример #3
0
        /// <summary>
        /// metoda, ktora dodaje do pozycji koszyka zalogowanej osoby produkt o danym indeksie, czyli gdy taki produkt istnieje juz w pozycjach koszyka zalogowanej osoby, zwieksza jego ilosc (o ile odpowiednia liczba produktu znajduje sie w magazynie) lub dodaje nowa popzycje koszyka, przekierowuje do strony produktu, ktory chcielismy dodac wraz z informacja o tym czy produkt zostal pomyslnie dodany do koszyka czy tez bylo go zbyt malo w magazynie
        /// </summary>
        /// <param name="index">parametr z indeksem produktu, ktory chcemy dodac do koszyka</param>
        public ActionResult Add(int index)
        {
            string fullPath  = Request.MapPath(@"~/zserializowane/pozycjeKoszykow.xml");
            string fullPath3 = Request.MapPath(@"~/zserializowane/produkty.xml");

            List <PozycjaKoszyka> pozycjeKoszykow = Dane.dajPozycje(1, fullPath);
            List <Produkt>        produkty        = Dane.dajProdukty(fullPath3);

            PozycjaKoszyka pk0 = pozycjeKoszykow.Find(x => x.ProduktIdProduktu == index);

            if (pk0 == null)
            {
                if (produkty.Find(x => x.idProduktu == index).ilosc >= 1)
                {
                    var pk1 = new PozycjaKoszyka(index, 1, 1);
                    pozycjeKoszykow.Add(pk1);
                    Dane.wezPozycje(pozycjeKoszykow);
                    return(RedirectToAction("jedenProdukt", "Produkt", new { @index = index, @mess = "Added" }));
                }
                else
                {
                    Dane.wezPozycje(pozycjeKoszykow);
                    return(RedirectToAction("jedenProdukt", "Produkt", new { @index = index, @mess = "TooLittle" }));
                }
            }
            else
            {
                if (produkty.Find(x => x.idProduktu == index).ilosc >= pk0.ilosc + 1)
                {
                    pk0.ilosc += 1;
                    Dane.wezPozycje(pozycjeKoszykow);
                    return(RedirectToAction("jedenProdukt", "Produkt", new { @index = index, @mess = "Added" }));
                }
                else
                {
                    Dane.wezPozycje(pozycjeKoszykow);
                    return(RedirectToAction("jedenProdukt", "Produkt", new { @index = index, @mess = "TooLittle" }));
                }
            }
        }