// POST: BackOffice/DossierReservations/
        public ActionResult Accept(int?id)
        {
            DossierReservation dossierReservation = db.DossiersReservations.Find(id);

            if (dossierReservation == null)
            {
                return(HttpNotFound());
            }
            if (dossierReservation.EtatDossier != EtatDossierReservation.EnCours)
            {
                Display("L'état du Dossier ne permet pas d'accepter");
                return(RedirectToAction("Index"));
            }

            var voyage = db.Voyages.Find(dossierReservation.VoyageId);

            if (dossierReservation.Participants.Count < voyage.MaxCapacity)
            {
                dossierReservation.EtatDossier = EtatDossierReservation.Accepte;
                voyage.MaxCapacity            -= dossierReservation.Participants.Count;
                db.Entry(voyage).State         = EntityState.Modified;
                Display("La réservation a été acceptée");
            }
            else
            {
                dossierReservation.EtatDossier             = EtatDossierReservation.Refusee;
                dossierReservation.RaisonAnnulationDossier = RaisonAnnulationDossier.PlacesInsuffisantes;
                Display("La réservation a été refusée pour cause places non disponibles");
            }

            db.Entry(dossierReservation).State = EntityState.Modified;
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Ejemplo n.º 2
0
        private void NouveauDossier()
        {
            ConsoleHelper.AfficherEntete("Nouveau Dossier");
            OutilsConsole.CentrerTexte("LISTE DES VOYAGES DISPONIBLES");
            OutilsConsole.Commentaire("---------- ( Le Prix/Pers est le Prix Agence indicatif) -------\n ");
            ConsoleHelper.AfficherListe(new VoyageData().GetList(), VoyagesMenu.strategieAffichageVoyages);
            Console.WriteLine();
            OutilsConsole.CentrerTexte("LISTE DES CLIENTS");
            ConsoleHelper.AfficherListe(new ClientData().GetList(), ClientsMenu.strategieAffichageClients);

            var dossierReservation = new DossierReservation
            {
                VoyageId     = ConsoleSaisie.SaisirEntierObligatoire("Entrez l' Id du Voyage :"),
                NumeroUnique = ConsoleSaisie.SaisirEntierObligatoire("Entrez le Numero Unique (10..) :"),
                ClientId     = ConsoleSaisie.SaisirEntierObligatoire("Entrez l' Id Client :"),

                PrixParPersonne     = ConsoleSaisie.SaisirDecimalObligatoire("Prix par Personne BoVoyage :"),
                NumeroCarteBancaire = ConsoleSaisie.SaisirChaineObligatoire("Numero CB :")
            };
            var dossierReservationService = new DossierReservationService();

            dossierReservationService.Ajout(dossierReservation);
            if (dossierReservation.Id != 0)
            {
                Console.WriteLine("Le Dossier a été créé avec l'Id :" + dossierReservation.Id);
            }
            else
            {
                Console.WriteLine("Impossible de créer le dossier");
            }
        }
        // POST: BackOffice/DossierReservations/
        public ActionResult Cancel(int?id)
        {
            DossierReservation dossierReservation = db.DossiersReservations.Find(id);

            if (dossierReservation == null)
            {
                return(HttpNotFound());
            }
            if (dossierReservation.EtatDossier == EtatDossierReservation.Clos ||
                dossierReservation.EtatDossier == EtatDossierReservation.Annule)
            {
                Display("L'état du Dossier ne permet pas de l'Annuler", MessageType.ERROR);
                return(RedirectToAction("Index"));
            }
            if (dossierReservation.EtatDossier != EtatDossierReservation.Refusee)
            {
                if (dossierReservation.EtatDossier == EtatDossierReservation.Accepte)
                {
                    if (dossierReservation.Assurances.Where(x => x.TypeAssurance == TypeAssurance.Annulation).Count() > 0)
                    {
                        var rembourser = new CarteBancaireService().Rembourser(dossierReservation.CreditCardNumber,
                                                                               dossierReservation.TotalPrice);
                        Display("Vous serez remboursé grâce à votre Assurance Annulation", MessageType.SUCCES);
                    }
                    dossierReservation.RaisonAnnulationDossier = RaisonAnnulationDossier.Client;
                }

                dossierReservation.EtatDossier     = EtatDossierReservation.Annule;
                db.Entry(dossierReservation).State = EntityState.Modified;
                db.SaveChanges();
                Display("La réservation a été annulée", MessageType.SUCCES);
            }

            return(RedirectToAction("Index"));
        }
        // GET: Reservations/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            DossierReservation dossierReservation = db.DossiersReservations.Include(d => d.Client)
                                                    .Include(d => d.Voyage).Include(d => d.Voyage.Destination)
                                                    .Include(d => d.Participants)
                                                    .Include(d => d.Assurances).SingleOrDefault(d => d.Id == id);

            if (dossierReservation == null)
            {
                return(HttpNotFound());
            }
            var clientId = GetCurrentClientId();

            if (dossierReservation.ClientId != clientId)
            {
                Display("Vous n'avez pas accès à cette réservation", MessageType.ERROR);
                return(RedirectToAction("Index"));
            }
            if (dossierReservation.EtatDossier == EtatDossierReservation.Refusee ||
                dossierReservation.EtatDossier == EtatDossierReservation.Annule)
            {
                Display("Votre réservation avait déjà été réfusée ou annulée", MessageType.ERROR);
                return(RedirectToAction("Index"));
            }
            return(View(dossierReservation));
        }
        public ActionResult Book([Bind(Exclude = "Id")] DossierReservation dossierReservation, int[] AssuranceIds)
        {
            if (ModelState.IsValid)
            {
                if (AssuranceIds != null && AssuranceIds.Count() > 0)
                {
                    dossierReservation.Assurances = db.Assurances.Where(x => AssuranceIds.Contains(x.ID)).ToList();
                }
                double cardNumber = 0;
                if (double.TryParse(dossierReservation.CreditCardNumber, out cardNumber) && cardNumber > 0)
                {
                    dossierReservation.UnitPrice = db.Voyages.Find(dossierReservation.VoyageId).UnitPublicPrice;
                    db.DossiersReservations.Add(dossierReservation);
                    db.SaveChanges();
                    return(RedirectToAction("Index"));
                }
                else
                {
                    ModelState.AddModelError("CreditCardNumber", "Le numéro CB doit comporter 20 chiffres maximimum");
                }
            }
            var voyage = db.Voyages.Include(v => v.Destination).SingleOrDefault(x => x.Id == dossierReservation.VoyageId);

            dossierReservation.Voyage = voyage;
            MultiSelectList assuranceValues = new MultiSelectList(db.Assurances, "ID", "TypeAssurance", db.Assurances.Select(x => x.ID));

            ViewBag.Assurances = assuranceValues;

            return(View(dossierReservation));
        }
Ejemplo n.º 6
0
        public DossierReservation Ajout(DossierReservation dossierReservation)
        {
            var dossierData = new DossierData();

            dossierData.Ajouter(dossierReservation);
            return(dossierReservation);
        }
        public ActionResult DeleteConfirmed(int id)
        {
            DossierReservation dossierReservation = db.DossiersReservations.Include(d => d.Client)
                                                    .Include(d => d.Voyage).Include(d => d.Voyage.Destination)
                                                    .Include(d => d.Participants)
                                                    .Include(d => d.Assurances).SingleOrDefault(d => d.Id == id);

            if (ModelState.IsValid)
            {
                if (dossierReservation.EtatDossier == EtatDossierReservation.Accepte)
                {
                    if (dossierReservation.Assurances.Where(x => x.TypeAssurance == TypeAssurance.Annulation).Count() > 0)
                    {
                        var rembourser = new CarteBancaireService().Rembourser(dossierReservation.CreditCardNumber,
                                                                               dossierReservation.TotalPrice);
                        Display("Vous serez remboursé grâce à votre Assurance Annulation", MessageType.SUCCES);
                    }
                }
                dossierReservation.EtatDossier             = EtatDossierReservation.Annule;
                dossierReservation.RaisonAnnulationDossier = RaisonAnnulationDossier.Client;


                db.Entry(dossierReservation).State = EntityState.Modified;
                db.SaveChanges();
            }
            return(RedirectToAction("Index"));
        }
        // GET: Reservations/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            DossierReservation dossierReservation = db.DossiersReservations.Find(id);

            if (dossierReservation == null)
            {
                return(HttpNotFound());
            }
            var clientId = GetCurrentClientId();

            if (dossierReservation.ClientId != clientId)
            {
                Display("Vous n'avez pas accès à cette réservation", MessageType.ERROR);
                return(RedirectToAction("Index"));
            }
            if (dossierReservation.EtatDossier == EtatDossierReservation.Refusee ||
                dossierReservation.EtatDossier == EtatDossierReservation.Annule)
            {
                Display("Votre réservation avait déjà été réfusé ou annulé", MessageType.ERROR);
                return(RedirectToAction("Index"));
            }
            return(View(dossierReservation));
        }
        // POST: BackOffice/DossierReservations/
        public ActionResult Validate(int?id)
        {
            DossierReservation dossierReservation = db.DossiersReservations.Find(id);

            if (dossierReservation == null)
            {
                return(HttpNotFound());
            }

            if (dossierReservation.EtatDossier != EtatDossierReservation.EnAttente)
            {
                Display("L'état du Dossier ne permet pas de valider ou a déjà été validé", MessageType.ERROR);
                return(RedirectToAction("Index"));
            }
            var carteBancaireServie = new CarteBancaireService();

            if (carteBancaireServie.ValiderSolvabilite(dossierReservation.CreditCardNumber,
                                                       dossierReservation.TotalPrice))
            {
                dossierReservation.EtatDossier     = EtatDossierReservation.EnCours;
                db.Entry(dossierReservation).State = EntityState.Modified;
                db.SaveChanges();
                Display("La réservation a été validée", MessageType.SUCCES);
            }
            else
            {
                dossierReservation.EtatDossier             = EtatDossierReservation.Refusee;
                dossierReservation.RaisonAnnulationDossier = RaisonAnnulationDossier.Insolvable;
                Display("Opération Refusée pour insolvabilité", MessageType.ERROR);
            }
            return(RedirectToAction("Index"));
        }
        public IHttpActionResult PutDossierReservation(int id, DossierReservation dossierReservation)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != dossierReservation.Id)
            {
                return(BadRequest());
            }

            db.Entry(dossierReservation).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!DossierReservationExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
        public void CreerReservation()
        {
            ConsoleHelper.AfficherEntete("Nouvelle réservation");

            var reservation = new DossierReservation {
            };

            ConsoleHelper.AfficherEntete("liste des participants");
            var liste = Application.GetBaseDonnees().Participants.ToList();

            ConsoleHelper.AfficherListe(liste, StrategieAffichage.AffichageParticipant());
            using (var bd = Application.GetBaseDonnees())
            {
                reservation.IdParticipant = ConsoleSaisie.SaisirEntierObligatoire("Entrer Id du participant");

                var listeparticipant = bd.Participants.Where(x => x.Id == reservation.IdParticipant);
                ConsoleHelper.AfficherListe(listeparticipant, StrategieAffichage.AffichageParticipant());


                ConsoleHelper.AfficherEntete("Liste des Voyages");
                var listevoyage = Application.GetBaseDonnees().Voyages.ToList();
                var listes      = bd.Voyages.Where(x => x.Id == reservation.IdVoyage);
                ConsoleHelper.AfficherListe(listes, StrategieAffichage.AffichageGestionVoyages());
                reservation.IdVoyage = ConsoleSaisie.SaisirEntierObligatoire("Entrer Id du voyage");



                reservation.NumeroUnique        = ConsoleSaisie.SaisirEntierObligatoire("Entrez le numéro unique:");
                reservation.NumeroCarteBancaire = ConsoleSaisie.SaisirChaineObligatoire("Entrez numéro de carte bancaire:");

                bd.DossiersReservations.Add(reservation);
                bd.SaveChanges();
            }
        }
Ejemplo n.º 12
0
        public void CreerReservation()
        {
            ConsoleHelper.AfficherEntete("Nouvelle réservation");

            var reservation = new DossierReservation {
            };

            {
                reservation.IdVoyage            = ConsoleSaisie.SaisirEntierObligatoire("IdVoyage :");
                reservation.IdClient            = ConsoleSaisie.SaisirEntierObligatoire("IdClient :");
                reservation.IdParticipant       = ConsoleSaisie.SaisirEntierObligatoire("IdParticipant :");
                reservation.NumeroUnique        = int.Parse(ConsoleSaisie.SaisirChaineObligatoire("Entrez le numéro (unique) client : "));
                reservation.PrixTotal           = int.Parse(ConsoleSaisie.SaisirChaineObligatoire("Entrez le prix Total : "));
                reservation.NumeroCarteBancaire = ConsoleSaisie.SaisirEntierObligatoire("Entrez le numéro de la carte bancaire du client : ");
            };
            Console.WriteLine("Voulez vous une assurance annulation O / N");
            if (Console.ReadLine().ToUpper() == "O")
            {
                reservation.Assurance = true;
            }


            using (var bd = Application.GetBaseDonnees())
            {
                bd.DossiersReservations.Add(reservation);
                bd.SaveChanges();
            }
        }
Ejemplo n.º 13
0
        private void AnnulerDossier()
        {          // en attente ou en cours à refusé
            ConsoleHelper.AfficherEntete("Annulation d'un Dossier");

            ConsoleHelper.AfficherListe(new DossierData().GetList(), strategieAffichageDossiers);
            var dossierReservationService = new DossierReservationService();
            var dossierReservation        = new DossierReservation();

            dossierReservation.Id = ConsoleSaisie.SaisirEntierObligatoire("Numero du Dossier à Annuler :");

            var raisonAnnulation = ConsoleSaisie.SaisirEntierObligatoire("Raison de l'annulation" +
                                                                         "\n 1. Cause Client \n 2. Nombre de places inssufisant : ");

            if (raisonAnnulation >= 1 && raisonAnnulation <= 2)
            {
                dossierReservation.RaisonAnnulationDossier = (RaisonAnnulationDossier)raisonAnnulation;
                var succes = dossierReservationService.Annuler(dossierReservation.Id, dossierReservation.RaisonAnnulationDossier);
                if (succes)
                {
                    Console.WriteLine("Le Dossier numero " + dossierReservation.Id + " a bien été annulé ");
                }
                else
                {
                    Console.WriteLine("Impossible d'annuler le dossier numero " + dossierReservation.Id);
                }
            }
            else
            {
                Console.WriteLine("Choix non valide...");
            }
        }
        private void Creer()
        {
            ConsoleHelper.AfficherEntete("Créer un dossier de réservation");
            ConsoleHelper.AfficherListe(serviceVoyage.ListerVoyage(), ElementsAffichage.strategieAffichageVoyage);
            var idVoyage = ConsoleSaisie.SaisirEntierObligatoire("Identifiant du voyage ?");

            ConsoleHelper.AfficherListe(serviceClient.ListerClient(), ElementsAffichage.strategieAffichageClient);
            var idClient = ConsoleSaisie.SaisirEntierObligatoire("Identifiant du client ?");

            ConsoleHelper.AfficherListe(serviceParticipant.ListerParticipant(), ElementsAffichage.strategieAffichageParticipant);
            List <string> listeIdentifiant = null;

            while (listeIdentifiant == null)
            {
                listeIdentifiant = new List <string>();
                var reponseListeIdentifiant = ConsoleSaisie.SaisirChaineObligatoire("Donnez la liste des identifiants des participants (maximum 9 et séparés par des virgules)");
                listeIdentifiant = reponseListeIdentifiant.Split(',').ToList();
                if (listeIdentifiant.Count() > 9)
                {
                    ConsoleHelper.AfficherMessageErreur("Vous ne pouvez pas selectionner plus de 9 participants");
                    listeIdentifiant = null;
                }
            }

            List <Participant> listeParticipant = new List <Participant>();

            foreach (string identifiant in listeIdentifiant)
            {
                int idParticipant = int.Parse(identifiant);
                listeParticipant.Add(serviceParticipant.TrouverParticipant(idParticipant));
            }

            ConsoleHelper.AfficherListe(serviceAssurance.ListerAssurance(), ElementsAffichage.strategieAffichageAssurance);
            var idAssurance = ConsoleSaisie.SaisirEntierOptionnel("Identifiant de l'assurance ?");

            decimal prixTotal = service.CalculerPrixTotal(listeParticipant, idVoyage, idAssurance);

            var numeroUnique        = ConsoleSaisie.SaisirEntierObligatoire("Numéro unique ?");
            var numeroCarteBancaire = ConsoleSaisie.SaisirChaineObligatoire("Numéro carte bancaire ?");

            var voyage = serviceVoyage.TrouverVoyage(idVoyage);

            DossierReservation dossierReservation = new DossierReservation
            {
                NumeroUnique        = numeroUnique,
                NumeroCarteBancaire = numeroCarteBancaire,
                IdClient            = idClient,
                NombreParticipant   = listeParticipant.Count,
                IdVoyage            = idVoyage,
                PrixTotal           = prixTotal,
                Participant         = listeParticipant.First(),
                PrixParPersonne     = voyage.PrixParPersonne,
                Etat        = EtatDossierReservation.EnAttente,
                IdAssurance = idAssurance
            };


            service.EnregistrerReservation(dossierReservation);
        }
Ejemplo n.º 15
0
        public ActionResult DeleteConfirmed(int id)
        {
            DossierReservation dossierReservation = db.DossierReservations.Find(id);

            db.DossierReservations.Remove(dossierReservation);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
 public void AjouterDossierReservation(DossierReservation dossierReservation)
 {
     using (Context context = new Context())
     {
         context.DossiersReservations.Add(dossierReservation);
         context.SaveChanges();
     }
 }
Ejemplo n.º 17
0
 public void SupprimerDossierReservation(DossierReservation dossier)
 {
     using (var contexte = new Contexte())
     {
         contexte.Entry(dossier).State = EntityState.Deleted;
         contexte.SaveChanges();
     }
 }
Ejemplo n.º 18
0
 public void CreerDossierReservation(DossierReservation dossierReservation)
 {
     using (var contexte = new Contexte())
     {
         contexte.DossiersReservations.Add(dossierReservation);
         contexte.SaveChanges();
     }
 }
 public void SupprimerDossierReservation(int id)
 {
     using (Context context = new Context())
     {
         DossierReservation dossierReservation = context.DossiersReservations.Single(x => x.Id == id);
         context.DossiersReservations.Remove(dossierReservation);
         context.SaveChanges();
     }
 }
Ejemplo n.º 20
0
 public DossierReservation Ajouter(DossierReservation DossierReservation)
 {
     using (var contexte = new Contexte())
     {
         contexte.DossierReservations.Add(DossierReservation);
         contexte.SaveChanges();
     }
     return(DossierReservation);
 }
 public void SupprimerDossierReservation(DossierReservation dossierReservation)
 {
     using (Context context = new Context())
     {
         context.DossiersReservations.Attach(dossierReservation);
         context.DossiersReservations.Remove(dossierReservation);
         context.SaveChanges();
     }
 }
Ejemplo n.º 22
0
 public void ModifierDossierReservation(DossierReservation dossierReservation)
 {
     using (var contexte = new Contexte())
     {
         contexte.DossiersReservations.Attach(dossierReservation);
         contexte.Entry(dossierReservation).State = EntityState.Modified;
         contexte.SaveChanges();
     }
 }
Ejemplo n.º 23
0
 public DossierReservation Update(DossierReservation dossierReservation)
 {
     using (var contexte = new BoVoyage())
     {
         contexte.DossierReservations.Attach(dossierReservation);
         contexte.Entry(dossierReservation).State = EntityState.Modified;
         contexte.SaveChanges();
     }
     return(dossierReservation);
 }
Ejemplo n.º 24
0
 public void EnregistrerReservation(DossierReservation dossierReservation)
 {
     if (dossierReservation.Id == 0)
     {
         CreerDossierReservation(dossierReservation);
     }
     else
     {
         ModifierDossierReservation(dossierReservation);
     }
 }
Ejemplo n.º 25
0
            private static void SupprimerReservation()
            {
                Console.WriteLine();
                Console.WriteLine(">SUPPRESSION D'UNE RESERVATION");

                DossierReservation dossier = ChoisirDossier();

                var serviceResa = new ServiceReservation();

                serviceResa.SupprimerDossierReservation(dossier);
            }
        public IHttpActionResult GetDossierReservation(int id)
        {
            DossierReservation dossierReservation = db.DossiersReservations.Find(id);

            if (dossierReservation == null)
            {
                return(NotFound());
            }

            return(Ok(dossierReservation));
        }
 public ActionResult Edit([Bind(Include = "Id,CreditCardNumber,UnitPrice,EtatDossier,ClientId,VoyageId")] DossierReservation dossierReservation)
 {
     if (ModelState.IsValid)
     {
         db.Entry(dossierReservation).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.ClientId = new SelectList(db.Clients, "Id", "UserId", dossierReservation.ClientId);
     ViewBag.VoyageId = new SelectList(db.Voyages, "Id", "Id", dossierReservation.VoyageId);
     return(View(dossierReservation));
 }
Ejemplo n.º 28
0
 public ActionResult Edit([Bind(Include = "ID,NumeroCarteBancaire,PrixParPersonne,EtatDossierReservation,RaisonAnnulationDossier,PrixTotal,IDVoyage,IDClient")] DossierReservation dossierReservation)
 {
     if (ModelState.IsValid)
     {
         db.Entry(dossierReservation).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.IDClient = new SelectList(db.Clients, "ID", "Email", dossierReservation.IDClient);
     ViewBag.IDVoyage = new SelectList(db.Voyages, "ID", "ID", dossierReservation.IDVoyage);
     return(View(dossierReservation));
 }
        public IHttpActionResult GetDossierReservation(int id)
        {
            DossierReservation dossierReservation = db.DossierReservations.Include(x => x.Participants).Include(y => y.Client).Include(t => t.Voyage)
                                                    .Include(z => z.Assurances).SingleOrDefault(u => u.Id == id);

            if (dossierReservation == null)
            {
                return(NotFound());
            }

            return(Ok(dossierReservation));
        }
        public IHttpActionResult PostDossierReservation(DossierReservation dossierReservation)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.DossierReservations.Add(dossierReservation);
            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = dossierReservation.Id }, dossierReservation));
        }