public async Task <ActionResult <long> > Post([FromBody] RequeteReservation requete)
        {
            List <HotelModel.Agence> agences = await _context.Agences.ToListAsync();

            HotelModel.Agence agence = null;
            foreach (HotelModel.Agence a in agences)
            {
                if (a.IdentifiantAgence == requete.IdentifiantAgence && a.MotDePasseAgence == requete.MotDePasseAgence)
                {
                    agence = a;
                }
            }

            HotelModel.Offre offre = await _context.Offres.FindAsync(requete.IdentifiantOffre);

            HotelModel.Reservation reservation = new HotelModel.Reservation
            {
                ChambreId         = offre.ChambreId,
                Prix              = offre.Prix,
                DateArrivee       = offre.DateArrivee,
                DateDepart        = offre.DateDepart,
                NomClient         = requete.NomClient,
                PrenomClient      = requete.PrenomClient,
                NumeroCarteClient = requete.NumeroCarteClient,
                IdentifiantAgence = requete.IdentifiantAgence
            };

            _context.Reservations.Add(reservation);

            _context.SaveChanges();

            return(reservation.Id);
        }
Пример #2
0
        public async Task <ActionResult <IEnumerable <HotelModel.Offre> > > Recherche([FromBody] RequeteRecherche requete)
        {
            List <HotelModel.Offre> resultat = new List <HotelModel.Offre>();

            List <HotelModel.Agence> agences = await _context.Agences.ToListAsync();

            HotelModel.Agence agence = null;

            foreach (HotelModel.Agence a in agences)
            {
                if (a.IdentifiantAgence == requete.IdentifiantAgence && a.MotDePasseAgence == requete.MotDePasseAgence)
                {
                    agence = a;
                }
            }

            List <HotelModel.Chambre> chambres = await _context.Chambres.ToListAsync();

            List <HotelModel.Reservation> reservations = await _context.Reservations.ToListAsync();

            foreach (HotelModel.Chambre c in chambres)
            {
                bool litOk     = c.NombreDeLits >= requete.NombrePersonnes;
                bool dateOk    = c.estDisponible(requete.DateArrivee, requete.DateDepart, reservations);
                bool villeOk   = requete.VilleHotel == _context.VilleHotel();
                bool etoilesOk = requete.NombreEtoiles <= _context.NombreEtoiles();

                if (litOk && dateOk && villeOk && etoilesOk)
                {
                    HotelModel.Offre offre = new HotelModel.Offre
                    {
                        NombreDeLits    = c.NombreDeLits,
                        DateArrivee     = requete.DateArrivee,
                        DateDepart      = requete.DateDepart,
                        Prix            = c.PrixCalcule(agence),
                        ChambreId       = c.Id,
                        HotelId         = _context.IdentifiantHotel(),
                        UrlReservation  = Request.Scheme + "://" + Request.Host + Request.PathBase + Url.Action("Reserver", "Reservation"),
                        ImageChambreUrl = c.ImageUrl,
                        NomHotel        = _context.NomHotel(),
                        VilleHotel      = _context.VilleHotel(),
                        AdresseHotel    = _context.AdresseHotel(),
                        NombreEtoiles   = _context.NombreEtoiles()
                    };

                    _context.Offres.Add(offre);

                    _context.SaveChanges();

                    resultat.Add(offre);
                }
            }

            return(resultat);
        }