Beispiel #1
0
        //to poki co nie uzywane
        public ProduktySklepView produkty_view(Filtry filtry, int currentPage, int naStronie)
        {
            ProduktySklepView produkty_view = new ProduktySklepView();
            var produkty = _db.Produkty.Where(t => t.Catering == filtry.Catering && t.Dostepny == true && (!filtry.Promocje) ? 1 == 1 : t.Promocja == true).AsNoTracking();

            if (filtry.KategoriaId != null)
            {
                produkty.Where(t => (_db.Produkty_Kategorie.Where(a => a.KategoriaId == filtry.KategoriaId).Select(a => a.ProduktId).Contains(t.Id))).Include(t => t.Kategoria_Produkt).Include(t => t.Szczegoly_Produkt).Include(t => t.Producent).AsNoTracking();
            }
            if (filtry.SearchText != null)
            {
                produkty.Where(t => t.K_Nazwa.Contains(filtry.SearchText));
            }

            produkty_view.dane = PobierzDodatkowaKategorie(produkty.Select(t => t.Id).ToList());

            if (filtry.DodatkowaKategoriaID != null)
            {
                produkty = produkty.Where(t => (Pobierz_Id_produktow_z_dodatkowej_kategori((int)filtry.DodatkowaKategoriaID).Contains(t.Id)));
            }

            produkty_view.filtry.cena_max = (produkty.Count() != 0) ? Math.Ceiling(produkty.Max(t => t.Cena_Brutto) / 10) * 10 : 0;

            if (produkty_view.filtry.cena_max_slider != null && produkty_view.filtry.cena_max != produkty_view.filtry.cena_max_slider)
            {
                produkty = produkty.Where(t => t.Cena_Brutto < (decimal)filtry.cena_max_slider);
            }

            return(null);
        }
        public ActionResult ProduktySklep(int?page, Filtry filtry /*,Kup_Produkty kup*/)
        {
            int currentPage = page ?? 1;
            int naStronie   = 20;

            ViewBag.CurrentSort = filtry.sortOrder ?? "Sortowanie";
            ViewBag.Catering    = filtry.Catering;

            ViewBag.DodatkowaKategoriaName = filtry.DodatkowaKategoriaID != null?db.DodatkowaKategoria.Find(filtry.DodatkowaKategoriaID).Nazwa : null;

            ViewBag.KategoriaName = filtry.KategoriaId != null?db.Kategorie.Find(filtry.KategoriaId).Nazwa : null;

            ProduktySklepView produkty_view = new ProduktySklepView()
            {
                filtry = filtry
            };
            //kategorie
            var produkty = (filtry.KategoriaId == null) ? _repo.PobierzProduktyKlient(filtry.Catering) : _repo.PobierzProduktyKlient((int)filtry.KategoriaId, filtry.Catering);

            //wyszukaj tekst
            produkty = (filtry.SearchText == null) ?produkty: produkty.Where(t => t.K_Nazwa.Contains(filtry.SearchText));

            //dodatkowe kategorie lewe menu
            produkty_view.dane = _repo.PobierzDodatkowaKategorie(produkty.Select(t => t.Id).ToList());

            if (filtry.DodatkowaKategoriaID != null)
            {
                var ax = _repo.Pobierz_Id_produktow_z_dodatkowej_kategori((int)filtry.DodatkowaKategoriaID);
                produkty = produkty.Where(t => (ax.Contains(t.Id)));
            }

            var group = produkty.GroupBy(t => t.Producent).Select(t => new { Id = t.Key.Id, Nazwa = t.Key.Nazwa }).ToList();

            group.Add(new { Id = 0, Nazwa = "Wszyscy" });
            ViewBag.ProducentId = new SelectList(group, "Id", "Nazwa", 0);
            //promocje
            if (filtry.Promocje != false)
            {
                produkty = produkty.Where(t => t.Promocja);
            }

            if (filtry.ProducentId != 0)
            {
                produkty = produkty.Where(t => t.ProducentId == filtry.ProducentId);                         // tutaj  i w cookie usunac producent id null
            }
            produkty_view.filtry.cena_max = (produkty.Count() != 0)? Math.Ceiling(produkty.Max(t => t.Cena_Brutto) / 10) * 10:0;

            produkty_view.filtry.cena_max_slider = (Cookie(filtry)) ? produkty_view.filtry.cena_max : produkty_view.filtry.cena_max_slider;

            if (produkty_view.filtry.cena_max_slider != null && produkty_view.filtry.cena_max != produkty_view.filtry.cena_max_slider)
            {
                produkty = produkty.Where(t => t.Cena_Brutto < (decimal)filtry.cena_max_slider);
            }


            ViewBag.IloscProduktow = produkty.Count();
            //sortowanie
            produkty = Sortowanie(produkty, filtry.sortOrder);
            //dodanie do nowego typu
            produkty_view.produkty = produkty.ToPagedList <Produkt>(currentPage, naStronie);

            if (Request.IsAjaxRequest())
            {
                //System.Threading.Thread.Sleep(2000);
                return((ActionResult)PartialView("ProduktySklepBody", produkty_view));
            }
            else
            {
                return(View(produkty_view));
            }
        }