public JsonResult listeProduits(HotelViewModel hvm) { Form115Entities db = new Form115Entities(); var prods = db.Produits.Where(p => p.Sejours.IdHotel == hvm.IdHotel) .Where(p=>p.Sejours.Duree >= hvm.DureeMinSejour) ; // TODO Attention aux filtres concurents pour le dateDebut if (hvm.DureeMaxSejour != null) { prods = prods.Where(p=>p.Sejours.Duree<=hvm.DureeMaxSejour) ; } if (hvm._dateDepart!=null) { prods = prods.Where(p=>p.DateDepart >= hvm._dateDepart) ; } //if (hvm._dateDebut != null) //{ prods = prods.Where(p => p.DateDepart >= hvm._dateDebut); //} ////if (hvm._dateFin != null) //{ prods = prods.Where(p => p.DateDepart <= hvm._dateFin); //} // HACK AsEnumerable avant le select ? Sinon ATTENTION, le nb_restants ne sera // pas à jour pour les prouits n'ayant pas de réservation, nécessite opérateur ternaire poutr jointure externe var result = prods.AsEnumerable().Select(p => new { date = p.DateDepart.ToString("dd/MM/yyyy"), duree = p.Sejours.Duree, prix = p.Prix, promotions = p.Promotion, prixSolde = p.PrixSolde, nb_restants = p.NbPlaces - p.Reservations.Sum(r => r.Quantity) }); return Json(result, JsonRequestBehavior.AllowGet); }
public ActionResult Details(int id) { //Form115Entities db = new Form115Entities(); //Hotels hotel = db.Hotels.Where(h => h.IdHotel == id).First(); HotelViewModel hvm = new HotelViewModel { IdHotel = id }; return View(hvm); }
public ActionResult DetailsPeriode(int id, string startDate, string endDate) { //Form115Entities db = new Form115Entities(); //Hotels hotel = db.Hotels.Where(h => h.IdHotel == id).First(); HotelViewModel hvm = new HotelViewModel { IdHotel = id, DateDebut = startDate, DateFin = endDate }; return View("Details", hvm); }
public ActionResult Details(int id, string nav) { //Form115Entities db = new Form115Entities(); //Hotels hotel = db.Hotels.Where(h => h.IdHotel == id).First(); HotelViewModel hvm = new HotelViewModel { IdHotel = id, DisponibiliteMax = _db.Produits.Where(p => p.Sejours.Hotels.IdHotel == id) .Select(p => (p.NbPlaces - (p.Reservations.Count() != 0 ? p.Reservations.Sum(r => r.Quantity) : 0))) .Max(), Nav = nav }; return View(hvm); }
public JsonResult listeProduits(HotelViewModel hvm) { SearchBase s = new Search(); if (hvm.DateIndifferente == null) { if (hvm.DateMarge == null) { s = new SearchOptionDateDepart(s, hvm._dateDepart, hvm._dateDepart); } else { s = new SearchOptionDateDepart(s, hvm._dateDepart, hvm._dateDepart.AddDays((double)hvm.DateMarge)); } } s = new SearchOptionAPartirDAujourdHui(s); // TODO Attention ici il peut n'y avoir qu'une seule renseignée s = new SearchOptionDuree(s, hvm.DureeMini, hvm.DureeMaxi); s = new SearchOptionNbPers(s, hvm.NbPers); s = new SearchOptionPrixMax(s, hvm.PrixMaxi); s = new SearchOptionPrixMin(s, hvm.PrixMini); //var prods = _db.Produits.Where(p => p.Sejours.IdHotel == hvm.IdHotel) // .Where(p=>p.Sejours.Duree >= hvm.DureeMinSejour) ; //// TODO Attention aux filtres concurents pour le dateDebut //if (hvm.DureeMaxSejour != null) { // prods = prods.Where(p=>p.Sejours.Duree<=hvm.DureeMaxSejour) ; //} //if (hvm._dateDepart!=null) { // prods = prods.Where(p=>p.DateDepart >= hvm._dateDepart) ; //} ////if (hvm._dateDebut != null) ////{ // prods = prods.Where(p => p.DateDepart >= hvm._dateDebut); ////} //////if (hvm._dateFin != null) ////{ // prods = prods.Where(p => p.DateDepart <= hvm._dateFin); ////} // if (hvm.NbPers >= 0) // { // prods = prods.Where(p => ((p.NbPlaces - (p.Reservations.Count() != 0 ? p.Reservations.Sum(r => r.Quantity) : 0)) >= hvm.NbPers)); // } // HACK AsEnumerable avant le select ? Sinon ATTENTION, le nb_restants ne sera // pas à jour pour les prouits n'ayant pas de réservation, nécessite opérateur ternaire poutr jointure externe // TODO : decorator pour l'hôtelk afin de le placer en premier var result = s.GetResult().Where(p => p.Sejours.Hotels.IdHotel == hvm.IdHotel) .AsEnumerable() .Select(p => new { date = p.DateDepart.ToString("dd/MM/yyyy"), duree = p.Sejours.Duree, prix = p.Prix, promotions = p.Promotion, prixSolde = p.PrixSolde, nb_restants = p.NbPlaces - p.Reservations.Sum(r => r.Quantity), sejour =p.IdProduit } ); return Json(result, JsonRequestBehavior.AllowGet); }
public ActionResult DetailsPeriode(int id, string startDate, string endDate) { //Form115Entities db = new Form115Entities(); //Hotels hotel = _db.Hotels.Where(h => h.IdHotel == id).First(); HotelViewModel hvm = new HotelViewModel { IdHotel = id, DateDebut = startDate, DateFin = endDate, DisponibiliteMax = _db.Produits.Where(p => p.Sejours.Hotels.IdHotel == id) .Select(p => (p.NbPlaces - (p.Reservations.Count() != 0 ? p.Reservations.Sum(r => r.Quantity) : 0))) .Max() }; return View("Details", hvm); }