예제 #1
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());
        }
예제 #2
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));
        }
예제 #3
0
        public async Task <IActionResult> ChangeAccount()
        {
            var user = await _userManager.GetUserAsync(User);

            CreationClientVM clientVM = new CreationClientVM();


            if (ViewBag.statutmssg == null)
            {
                clientVM.StatusMessage = "Bonjour !";
            }
            else
            {
                clientVM.StatusMessage = ViewBag.statutmssg;
            }

            if (user == null)
            {
                clientVM.StatusMessage = " Erreur : Pas de client avec votre Email ... ";
                return(RedirectToAction("Create", "Clients", clientVM));
            }

            var hasPassword = await _userManager.HasPasswordAsync(user);

            if (!hasPassword)
            {
                return(RedirectToAction(nameof(SetPassword)));
            }

            var hasEmail = await _userManager.GetEmailAsync(user);

            if (hasEmail == null)
            {
                return(RedirectToAction("Register", "Account"));
            }


            Client client = (from c in _context.Client
                             where c.Email == user.Email
                             select new Client
            {
                Id = c.Id,
                Nom = c.Nom,
                Prenom = c.Prenom,
                Civilite = c.Civilite,
                Adresse = c.Adresse,
                Telephone = c.Telephone
            }).SingleOrDefault();


            if (client == null)
            {
                return(RedirectToAction("Create", "Clients"));
            }
            else
            {
                CreationClientVM clientInter = new CreationClientVM()
                {
                    id            = client.Id,
                    Nom           = client.Nom,
                    Prenom        = client.Prenom,
                    Civilite      = client.Civilite,
                    StatusMessage = clientVM.StatusMessage
                };

                if (client.Adresse != null)
                {
                    clientInter.AdresseRue        = client.Adresse.Rue;
                    clientInter.AdresseCodePostal = client.Adresse.CodePostal;
                    clientInter.AdresseVille      = client.Adresse.Ville;
                }
                if (client.Telephone.Where(t => t.CodeType == "F") != null)
                {
                    clientInter.TelephoneDom = client.Telephone.Where(t => t.CodeType == "F").Select(t => t.Numero).SingleOrDefault();
                    clientInter.ProDom       = client.Telephone.Where(t => t.CodeType == "F").Select(t => t.Pro).SingleOrDefault();
                }
                if (client.Telephone.Where(t => t.CodeType == "M") != null)
                {
                    clientInter.TelephonePort = client.Telephone.Where(t => t.CodeType == "M").Select(t => t.Numero).SingleOrDefault();
                    clientInter.ProPort       = client.Telephone.Where(t => t.CodeType == "M").Select(t => t.Pro).SingleOrDefault();
                }
                return(View(clientInter));
            }
        }