/// <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()); }
/// <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()); }
/// <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" })); } } }