Пример #1
0
        // GET: Apartamenty
        public ActionResult Index()
        {
            var lista = new List <SelectListItem>();

            lista.Add(new SelectListItem()
            {
                Value = "", Text = "---"
            });
            var rez = db.Apartamenty.Select(x => x.Miasto).Distinct().ToList().Select(m => new SelectListItem()
            {
                Value = m, Text = m
            }).ToList();

            lista.AddRange(rez);

            ViewData["MiastaList"]       = lista;
            ViewData["UdogodnieniaList"] = db.Udogodnienia.ToList();

            var model = new ApartamentyFilterViewModel()
            {
                WybraneUdogodeniniaIds = new int[] { },
                DataDo = DateTime.Today,
                DataOd = DateTime.Today
            };

            return(View(model));
        }
Пример #2
0
        public ActionResult ApartamentyLista(ApartamentyFilterViewModel filtr)
        {
            var predicate1 = PredicateBuilder.New <Apartamenty>(true);

            if (!String.IsNullOrEmpty(filtr.Miasto))
            {
                predicate1 = predicate1.And(a => a.Miasto == filtr.Miasto);
            }
            if (filtr.CenaOd.HasValue && filtr.CenaOd != 0)
            {
                predicate1 = predicate1.And(a => a.Cena >= filtr.CenaOd);
            }
            if (filtr.CenaDo.HasValue && filtr.CenaDo != 0)
            {
                predicate1 = predicate1.And(a => a.Cena <= filtr.CenaDo);
            }
            if (filtr.IleOsob.HasValue && filtr.IleOsob != 0)
            {
                predicate1 = predicate1.And(a => a.IloscOsob == filtr.IleOsob);
            }

            var predicate2 = PredicateBuilder.New <Apartamenty>(true);

            predicate2 = predicate2.And(a => a.Wizyty == null || !a.Wizyty.Any(w => w.Potwierdzona != false && !(w.DataOd > filtr.DataDo || w.DataDo < filtr.DataOd)));

            if (filtr.WybraneUdogodeniniaIds != null)
            {
                foreach (var item in filtr.WybraneUdogodeniniaIds)
                {
                    predicate2 = predicate2.And(a => a.UdogodnieniaApartamenty != null && a.UdogodnieniaApartamenty.Any(x => x.IdUdogodnienia == item));
                }
            }

            var result = db.Apartamenty.Where(predicate1)
                         .Include("Wizyty")
                         .Include("UdogodnieniaApartamenty.Udogodnienie").ToList()
                         .Where(predicate2)
                         .Select(a => new ApartamentyDisplayViewModel(a));

            if (result.Any())
            {
                result = result.OrderByDescending(x => x.Ocena).ThenBy(y => y.Nazwa).ToList();
            }

            ViewData["dataOd"] = this.DateTimeToString(filtr.DataOd);
            ViewData["dataDo"] = this.DateTimeToString(filtr.DataDo);

            return(PartialView("_ApartamentyLista", result));
        }