예제 #1
0
        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));
        }
예제 #2
0
        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));
        }
예제 #3
0
        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());
        }
예제 #4
0
        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."));
        }
예제 #5
0
        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());
            }


            _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> 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"));
        }
예제 #8
0
        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"));
            }
        }