public async Task <IActionResult> Creates()
        {
            //je recupere l'email l'email de l'utilisateur
            var user = await _userManager.GetUserAsync(User);

            var email = user.Email;
            //je recupere l'id du client avec l'email
            var id = _context.Client.Where(c => c.Email == email).Select(c => c.Id).FirstOrDefault();
            //je recupere mon objet reservation de ma session
            var reservations = HttpContext.Session.GetObjectFromJson <Reservation>(SessionKeyReservationVM);

            reservations.IdClient = id;
            var duree = reservations.NbNuit;

            //je fais une boucle pour enregistrer la reservion sur la durée du sejour
            for (int i = 0; i < duree; i++)
            {
                reservations.Jour = reservations.Jour.AddDays(i);
                _context.Add(reservations);
                //j'enregistre la reservation
                await _context.SaveChangesAsync();
            }
            //je reinitialise la date d'arrivée pour pouvoir afficher la bonne date dans ma vue
            reservations.Jour = reservations.Jour.AddDays(-(duree - 1));
            //je vide ma session pour q'un client puisse accéder
            HttpContext.Session.Remove(SessionKeyReservationVM);
            return(View(reservations));
        }
        public async Task <IActionResult> Create([Bind("Numero,Etage,Bain,Douche,Wc,NbLits,NumTel")] Chambre chambre)
        {
            if (ModelState.IsValid)
            {
                _context.Add(chambre);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(chambre));
        }
        public async Task <IActionResult> Create([Bind("Id,IdClient,DateFacture,DatePaiement,CodeModePaiement")] Facture facture)
        {
            if (ModelState.IsValid)
            {
                _context.Add(facture);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["CodeModePaiement"] = new SelectList(_context.ModePaiement, "Code", "Code", facture.CodeModePaiement);
            ViewData["IdClient"]         = new SelectList(_context.Client, "Id", "Civilite", facture.IdClient);
            return(View(facture));
        }
Example #4
0
        public async Task <IActionResult> Create(CreationClientVM clientVM)
        {
            if (ModelState.IsValid)
            {
                //Verification
                #region
                var user = await _userManager.GetUserAsync(User);

                string teldomi = await _context.Telephone.Where(t => t.Numero == clientVM.TelephoneDom).Select(t => t.Numero).SingleOrDefaultAsync();

                string telport = await _context.Telephone.Where(t => t.Numero == clientVM.TelephonePort).Select(t => t.Numero).SingleOrDefaultAsync();

                if (teldomi != null)
                {
                    clientVM.StatusMessage = "Numéro de telephone déja existant";
                    return(View(clientVM));
                }

                if (telport != null)
                {
                    clientVM.StatusMessage = "Numéro de telephone déja existant";
                    return(View(clientVM));
                }

                //Test si email unique

                Client clientAncien = _context.Client.Where(c => c.Email == user.Email).FirstOrDefault();
                if (clientAncien != null)
                {
                    clientVM.StatusMessage = "Erreur : Adresse Mail deja utilisée pour un compte...";
                    return(View(clientVM));
                }
                #endregion

                //Création du client
                #region
                Client client = new Client
                {
                    Civilite      = clientVM.Civilite,
                    Nom           = clientVM.Nom.ToUpper(),
                    Prenom        = clientVM.Prenom[0].ToString().ToUpper() + clientVM.Prenom.Substring(1),
                    Email         = user.Email,
                    CarteFidelite = false
                };
                _context.Add(client);
                await _context.SaveChangesAsync();

                int id = _context.Client.OrderBy(c => c.Id).Select(c => c.Id).LastOrDefault();
                clientVM.id = id;
                #endregion

                //Création adresse
                #region
                if (clientVM.AdresseVille != null && clientVM.AdresseRue != null && clientVM.AdresseCodePostal != null)
                {
                    Adresse Adresse = new Adresse()
                    {
                        IdClient   = clientVM.id,
                        Rue        = clientVM.AdresseRue,
                        CodePostal = clientVM.AdresseCodePostal,
                        Ville      = clientVM.AdresseVille.ToUpper()
                    };

                    _context.Add(Adresse);
                    await _context.SaveChangesAsync();
                }
                #endregion

                //Création/MAJ Telephone Domilcile
                #region
                if (clientVM.TelephoneDom.Length == 10)
                {
                    Telephone telDom = new Telephone()
                    {
                        IdClient = clientVM.id,
                        CodeType = "F",
                        Numero   = clientVM.TelephoneDom,
                        Pro      = clientVM.ProDom
                    };

                    if (teldomi == null)
                    {
                        _context.Add(telDom);
                        await _context.SaveChangesAsync();
                    }
                }
                ;
                #endregion

                //Création Telephone Portable
                #region
                if (clientVM.TelephonePort.Length == 10)
                {
                    Telephone telPort = new Telephone()
                    {
                        IdClient = clientVM.id,
                        CodeType = "M",
                        Numero   = clientVM.TelephonePort,
                        Pro      = clientVM.ProPort
                    };

                    if (telport == null)
                    {
                        _context.Add(telPort);
                        await _context.SaveChangesAsync();
                    }
                }
                ;
                #endregion

                var reservations = HttpContext.Session.GetObjectFromJson <Reservation>(SessionKeyReservationVM);

                //Si réussi, redirect vers change Account
                if (reservations != null)
                {
                    return(RedirectToAction("Creates", "Reservations"));
                }
                else
                {
                    return(RedirectToAction("Index", "Manage"));
                }
            }
            return(View(clientVM));
        }
Example #5
0
        public async Task <IActionResult> ChangeAccount(CreationClientVM clientVM)
        {
            if (!ModelState.IsValid)
            {
                clientVM.StatusMessage = "Erreur : Veuillez rensignez toutes les coordonnées correctement";
                return(View(clientVM));
            }

            var user = await _userManager.GetUserAsync(User);

            try
            {
                //Update Client
                #region
                Client clientAncien = await _context.Client.Where(c => c.Email == user.Email).SingleOrDefaultAsync();

                clientAncien.Civilite = clientVM.Civilite;
                clientAncien.Nom      = clientVM.Nom.ToUpper();
                // Le nom et la premiere lettre du prénom en majuscule
                clientAncien.Prenom = clientVM.Prenom[0].ToString().ToUpper() + clientVM.Prenom.Substring(1);
                clientAncien.Email  = user.Email;

                clientVM.id = clientAncien.Id;
                _context.Update(clientAncien);
                await _context.SaveChangesAsync();

                #endregion

                //Update Adresse
                if (clientVM.AdresseVille != null && clientVM.AdresseRue != null && clientVM.AdresseCodePostal != null)
                {
                    Adresse adresseAncienne = await _context.Adresse.Where(a => a.IdClient == clientVM.id).SingleOrDefaultAsync();

                    adresseAncienne.IdClient   = clientVM.id;
                    adresseAncienne.Rue        = clientVM.AdresseRue;
                    adresseAncienne.CodePostal = clientVM.AdresseCodePostal;
                    adresseAncienne.Ville      = clientVM.AdresseVille.ToUpper();

                    _context.Update(adresseAncienne);
                    await _context.SaveChangesAsync();
                }

                //Update Telephones
                #region
                //Si numéro non identique
                if (clientVM.TelephoneDom != clientVM.TelephonePort)
                {
                    //Domicile
                    if (clientVM.TelephoneDom.Length == 10)
                    {
                        string telClient = await _context.Telephone.Where(t => t.IdClient == clientVM.id && t.CodeType == "F").Select(t => t.Numero).SingleOrDefaultAsync();

                        string telExistDeja = await _context.Telephone.Where(t => t.Numero == clientVM.TelephoneDom).Select(t => t.Numero).SingleOrDefaultAsync();

                        Telephone telDom = await _context.Telephone.Where(t => t.IdClient == clientVM.id && t.CodeType == "F").SingleOrDefaultAsync();

                        // Si le client n'avait pas de numéro
                        if (telClient == null)
                        {
                            Telephone telNouveau = new Telephone()
                            {
                                IdClient = clientVM.id,
                                CodeType = "F",
                                Numero   = clientVM.TelephoneDom,
                                Pro      = clientVM.ProDom
                            };

                            _context.Telephone.Add(telNouveau);
                            await _context.SaveChangesAsync();
                        }
                        // si le numéro n'existe pas dans la BDD ET que le client a déja un numéro
                        else if (telExistDeja == null)
                        {
                            _context.Remove(telDom);
                            await _context.SaveChangesAsync();

                            telDom.IdClient = clientVM.id;
                            telDom.Numero   = clientVM.TelephoneDom;
                            telDom.Pro      = clientVM.ProDom;
                            telDom.CodeType = "F";

                            _context.Add(telDom);
                            await _context.SaveChangesAsync();
                        }
                        else if (clientVM.TelephoneDom != telDom.Numero)
                        {
                            clientVM.TelephonePort = "";
                            ViewBag.statutmssg     = "Erreur : Numero de telephone Portable déja utilisé..";
                            return(View());
                        }
                    }
                    // Si veut simplement supprimer un telephone
                    else
                    {
                        Telephone telDom = await _context.Telephone.Where(t => t.IdClient == clientVM.id && t.CodeType == "F").SingleOrDefaultAsync();

                        _context.Remove(telDom);
                        await _context.SaveChangesAsync();
                    }

                    //Portable
                    if (clientVM.TelephonePort.Length == 10)
                    {
                        string telClient = await _context.Telephone.Where(t => t.IdClient == clientVM.id && t.CodeType == "M").Select(t => t.Numero).SingleOrDefaultAsync();

                        string telExist = await _context.Telephone.Where(t => t.Numero == clientVM.TelephonePort).Select(t => t.Numero).SingleOrDefaultAsync();

                        Telephone telPort = await _context.Telephone.Where(t => t.IdClient == clientVM.id && t.CodeType == "M").SingleOrDefaultAsync();


                        // Si le client n'avait pas de numéro
                        if (telClient == null)
                        {
                            Telephone telNouveau = new Telephone()
                            {
                                IdClient = clientVM.id,
                                CodeType = "M",
                                Numero   = clientVM.TelephonePort,
                                Pro      = clientVM.ProPort
                            };

                            _context.Telephone.Add(telNouveau);
                            await _context.SaveChangesAsync();
                        }
                        // si le numéro n'existe pas dans la BDD ET que le client a déja un numéro
                        else if (telExist == null)
                        {
                            _context.Remove(telPort);
                            await _context.SaveChangesAsync();

                            telPort.IdClient = clientVM.id;
                            telPort.Numero   = clientVM.TelephonePort;
                            telPort.Pro      = clientVM.ProPort;
                            telPort.CodeType = "M";

                            _context.Add(telPort);
                            await _context.SaveChangesAsync();
                        }
                        else if (clientVM.TelephonePort != telPort.Numero)
                        {
                            clientVM.TelephonePort = "";
                            ViewBag.statutmssg     = "Erreur : Numero de telephone Portable déja utilisé..";
                            return(View());
                        }
                    }
                    // Si veut simplement supprimer un telephone
                    else
                    {
                        Telephone telPort = await _context.Telephone.Where(t => t.IdClient == clientVM.id && t.CodeType == "M").SingleOrDefaultAsync();

                        _context.Remove(telPort);
                        await _context.SaveChangesAsync();
                    }
                }

                else
                {
                    ViewBag.statutmssg = "Erreur : Numeros identiques...";
                    return(View());
                }
                #endregion
            }
            catch (Exception e)
            {
                ViewBag.statutmssg = "Erreur : " + e.Message;
                return(View());
            }

            ViewBag.statutmssg = "Compte modifié avec succés";
            return(View());
        }