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()); }
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)); }
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)); } }