public async Task <IActionResult> PutFacture(int id, Facture facture) { if (id != facture.Id) { return(BadRequest("La facture passée en paramètre ne correspond pas au client demandé")); } //Attache au contexte la facture passée en paramètre, puis défini ses champs DateFacture et CodeModePaiement en tant que modifié _context.Attach(facture); _context.Entry(facture).Property("DateFacture").IsModified = true; _context.Entry(facture).Property("CodeModePaiement").IsModified = true; try { await _context.SaveChangesAsync(); _context.Entry(facture).Reload(); } catch (DbUpdateConcurrencyException) { if (!FactureExists(id)) { return(NotFound("La facture ayant pour id " + id + " n'a pas été trouvée")); } else { return(BadRequest()); } } return(Ok(facture)); }
public async Task <IActionResult> PostClient(int id, Telephone tel) { if (ClientExists(id)) { if (tel.IdClient != id) { tel.IdClient = id; } _context.Telephone.Add(tel); } else { return(NotFound("L'Id donné ne correspond à aucun de nos clients!")); } try { await _context.SaveChangesAsync(); } catch (DbUpdateException) { return(BadRequest("Un conflit s'est produit lors de la mise à jour de la clé primaire. Celle-ci est déjà utilisée.")); } return(Ok("Le numero du telephone a bien été rajouté")); }
public async Task <IActionResult> PutReservation(Reservation reservation) { try { if (_context.Reservation.Find(reservation.NumChambre, reservation.Jour).IdClient != reservation.IdClient) { return(Conflict("Réservation déjà existante pour un client différent.")); } //On détache l'entité déjà sauvegardée en local, var local = _context.Reservation.Local.FirstOrDefault(r => r.NumChambre == reservation.NumChambre & r.Jour == reservation.Jour); _context.Entry(local).State = EntityState.Detached; _context.Entry(reservation).State = EntityState.Modified; await _context.SaveChangesAsync(); await _context.Entry(reservation).ReloadAsync(); } catch (Exception) { if (!ReservationExists(reservation.NumChambre, reservation.Jour)) { return(NotFound("Aucune réservation de cette chambre pour ce jour la.")); } else { return(BadRequest()); } } return(Ok(reservation)); }
public async Task <IActionResult> PutClient(int id, Client client) { if (id != client.Id) { return(BadRequest("Le client demandé ne correspond pas à l'ID renseigné.")); } _context.Entry(client).State = EntityState.Modified; try { await _context.SaveChangesAsync(); _context.Entry(client).Reload(); } catch (DbUpdateConcurrencyException) { if (!ClientExists(id)) { return(NotFound()); } else { return(BadRequest()); } } return(Ok(client)); }
public async Task <IActionResult> PutFacture(int id, Facture facture) { if (id != facture.Id) { return(BadRequest()); } _context.Entry(facture).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!FactureExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <IActionResult> PutClient(int id, Client client) { if (id != client.Id) { return(BadRequest()); } _context.Entry(client).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ClientExists(id)) { return(NotFound()); } else { throw; } } return(Ok()); }
public async Task <IActionResult> PutFacture(int id, Facture newFacture) { if (!_context.Facture.Any(f => f.Id == id)) { return(NotFound("La facture n'existe pas.")); } if (newFacture.Id > 0 && id != newFacture.Id) { return(BadRequest("L'Id donné en paramètre ne correspond pas à celui de la facture renseigné.")); } var facture = await _context.Facture.FindAsync(id); if (facture == null) { return(NotFound("L'Id donné ne correspond pas à aucune des factures!")); } facture.DateFacture = newFacture.DateFacture; facture.CodeModePaiement = newFacture.CodeModePaiement; _context.Entry(facture).Property("DateFacture").IsModified = true; _context.Entry(facture).Property("CodeModePaiement").IsModified = true; try { await _context.SaveChangesAsync(); } catch (DbUpdateException) { return(BadRequest("Une erreur s'est produite lors de la mise à jour.\nVeuillez vérifier les valeurs de date et codeModePaiement")); } return(Ok("La mise à jour a bien été effectuée.")); }
public async Task <IActionResult> PutReservation([FromQuery] int clientId, Reservation reservation) { if (clientId == 0) { return(BadRequest("Pas d'Id client renseigné")); } if (reservation.Jour == DateTime.MinValue || reservation.NumChambre == 0) { return(BadRequest("Le numero du chambre et la date doivent être renseignés")); } if (!_context.Client.Any(c => c.Id == clientId)) { return(NotFound("Le client avec l'id : " + clientId + " n'est pas enregistré dans notre base de données!")); } var clientReservation = _context.Reservation.Where(r => r.Jour == reservation.Jour && r.NumChambre == reservation.NumChambre).FirstOrDefault(); if (clientReservation == null) { return(NotFound("Le client n'a pas reservé la chambre " + reservation.NumChambre + " pour la date " + reservation.Jour)); } clientReservation.NbPersonnes = reservation.NbPersonnes; clientReservation.HeureArrivee = reservation.HeureArrivee; clientReservation.Travail = reservation.Travail; _context.Entry(clientReservation).State = EntityState.Modified; await _context.SaveChangesAsync(); return(Ok("Les changements ont été pris en compte")); }
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 <bool> AjouterClient(ClientVM client) { Client clt = new Client(); bool save = false; try { bool exist = grandhotel.Utilisateur.Any(x => x.Email == client.EmailUtilisateur); if (exist) { bool emailexist = grandhotel.Email.Any(x => x.Adresse == client.EmailUtilisateur); int id = grandhotel.Utilisateur .Where(x => x.Email == client.EmailUtilisateur) .Select(x => x.Id) .FirstOrDefault(); if (!emailexist) { clt.CarteFidelite = client.CarteFidelite; clt.Societe = client.Societe; clt.UtilisateurId = id; Adresse adresse = new Adresse(); adresse.Rue = client.Rue; adresse.Complement = client.Complement; adresse.CodePostal = client.CodePostal; adresse.Ville = client.Ville; clt.Adresse = adresse; List <Telephone> tel = new List <Telephone>(); tel = client.Telephone; clt.Telephone = tel; Email mail = new Email(); mail.Adresse = client.EmailUtilisateur; mail.Pro = client.EmailPro; clt.Email.Add(mail); grandhotel.Client.Add(clt); await grandhotel.SaveChangesAsync(); save = true; } } } catch (Exception ex) { } await MiseAJourUtilisateur(client.EmailUtilisateur, clt.Id); return(save); }
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 <int> AjouterUtilisateur(Utilisateur user) { int id = 0; int roleid = 0; try { bool exist = grandhotel.Utilisateur.Any(x => x.Email == user.Email); if (!exist) { string hotel = user.Email.ToUpper(); string motDePasseEncode = EncodeMD5(user.MotDePasse); if (!hotel.Contains("grandhotel".ToUpper())) { roleid = grandhotel.Role.Where(x => x.Nom == "client").Select(x => x.Id).FirstOrDefault(); } else { roleid = grandhotel.Role.Where(x => x.Nom == "administrateur").Select(x => x.Id).FirstOrDefault(); } user.MotDePasse = motDePasseEncode; user.RoleId = roleid; grandhotel.Utilisateur.Add(user); await grandhotel.SaveChangesAsync(); } else { return(id); } } catch (Exception ex) { } id = user.Id; return(id); }
public async Task <IActionResult> PostClient([FromBody] Client client) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } Client testEmail = await _context.Client.Where(c => c.Email == client.Email).SingleOrDefaultAsync(); if (testEmail == null) { _context.Client.Add(client); await _context.SaveChangesAsync(); int id = await _context.Client.OrderBy(c => c.Id).Select(c => c.Id).LastOrDefaultAsync(); string idClient = id.ToString(); return(Ok(idClient)); } string mail = "Mail"; return(BadRequest(mail)); }
public async Task <IActionResult> PutReservation(short id, Reservation reservation) { if (id != reservation.IdClient) { return(BadRequest("Il y a une erreur entre les paramètre passer dans l'URL et dans le corps de la requête")); } //On récupère la potentiel réservation pour s'assurer qu'elle existe var reservationAModifer = await _context.Reservation.Where(r => r.IdClient == id && r.NumChambre == reservation.NumChambre && r.Jour == reservation.Jour).FirstOrDefaultAsync(); if (reservationAModifer == null) { return(NotFound("Aucune réservation n'est enregistrée pour cette chambre à cette date")); } else { reservationAModifer.NbPersonnes = reservation.NbPersonnes; reservationAModifer.HeureArrivee = reservation.HeureArrivee; reservationAModifer.Travail = reservation.Travail; _context.Entry(reservationAModifer).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateException e) { var sqle = e.InnerException as SqlException; return(BadRequest("Erreur lors de la modification de la reservation : " + sqle.Number)); } return(Ok("Votre reservation a été modifiée avec succès")); } }
public async Task <int> AjouterReservation(Reservation reserv) { int i = 0; try { grandhotel.Reservation.Add(reserv); await grandhotel.SaveChangesAsync(); i = 1; } catch (Exception ex) { } return(i); }
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()); }