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