/// <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());
        }
Beispiel #2
0
        /// <summary>metoda przekazujaca widokowi dane wybranego produktu i opcjonalnie informacje o tym czy produkt udalo sie dodac do koszyka czy tez nie  </summary>
        /// <param name="index">parametr zawierajacy informacje o tym jakiego produktu dane chcemy zobaczyć</param>
        /// <param name="mess">parametr zawierajacy infromacje o tym czy produkt udalo sie dodać do koszyka czyt też nie, domyślnie zawiera wartość null - gdy nie chcieliśmy dodawać produktu do koszyka</param>
        public ActionResult jedenProdukt(int index, String mess)
        {
            string         fullPath = Request.MapPath(@"~/zserializowane/produkty.xml");
            List <Produkt> produkty = Dane.dajProdukty(fullPath);

            ViewBag.Produkt        = WyborProduktu.produktWybrany(produkty, index);
            ViewBag.NoteFromBasket = mess;

            return(View());
        }
Beispiel #3
0
        /// <summary>
        /// metoda, ktora pobiera dane z formularza po jego zatwierdzeniu i wybiera oraz przekazuje do widoku produkty z produktow z danego katalogu produktow, te ktore odpowiadaja opcjom zaznaczonym w formularzu, gdy nic z formularza nie jest odznaczone, przekazuje wszystkie dane produktow z katalogu produktu, ponadto przekazuje dane do formularza na podstawie daych produktow znajdujacych sie w wybranym katalogu
        /// </summary>
        /// <param name="index">parametr zawierający informacje o tym z ktorego katalogu produkty chcemy wyswietlac</param>
        public ActionResult jedenKatalog(int index)
        {
            var value1 = Request["xd"];
            var value2 = Request["marki"];
            var value3 = Request["sort"];
            var value4 = Request["cena"];

            ViewBag.Niepoprawne = false;
            float wybranaCena;

            Formularz f = new Formularz(value2, value1, value3, value4);

            String[] wybraneMarki   = f.dajMarki();
            String[] wybraneRodzaje = f.dajRodzaje();

            string         fullPath  = Request.MapPath(@"~/zserializowane/produkty.xml");
            List <Produkt> produkty2 = Dane.dajProdukty(fullPath);
            List <Produkt> produkty3 = f.wybierzMarki(produkty2);
            List <Produkt> produkty  = f.wybierzRodzaje(produkty3);

            if (float.TryParse(value4, out wybranaCena))
            {
                produkty = produkty.FindAll(x => x.cena <= wybranaCena);
            }
            else if (value4 != null && value4 != "")
            {
                ViewBag.Niepoprawne = true;
            }

            string fullPath2 = Request.MapPath(@"~/zserializowane/katalogi.xml");
            List <KatalogProduktow> katalogi = Dane.dajKatalogi(fullPath2);

            var paramTuple  = WyborKatalogu.produktyZKatalogu(katalogi, produkty2, index);
            var paramTuple2 = WyborKatalogu.produktyZKatalogu(katalogi, produkty, index);

            List <Produkt> listaWgSortowania = paramTuple2.Item1;

            ViewBag.MyTuple = new Tuple <List <Produkt>, String>(f.sortuj(listaWgSortowania), paramTuple.Item2);

            var marki = WyborParamterow.wybierzMarki(paramTuple.Item1);

            ViewBag.Marki = marki;

            var rodzaje = WyborParamterow.wybierzRodzaje(paramTuple.Item1);

            ViewBag.Rodzaje = rodzaje;

            ViewBag.Idk  = index;
            ViewBag.Info = f.dajInfo();
            return(View());
        }
        /// <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"));
        }
        /// <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" }));
                }
            }
        }