Esempio n. 1
0
        public async Task <ActionResult <ReservationTimeSlot> > PutReservationTimeSlot([FromBody] ReservationTimeSlot reservationTimeSlot)
        {
            try
            {
                string accountID = this.User.FindFirst(ClaimTypes.NameIdentifier).Value;

                reservationTimeSlot.accountID = accountID;

                ParkingSpot parkingSpot = await parkingSpotManager.GetFreeParkingSpot(reservationTimeSlot.startReservation, reservationTimeSlot.endReservation);

                if (parkingSpot == null)
                {
                    return(NotFound());
                }

                ReservationTimeSlot reservation = await reservationTimeSlotManager.UpdateReservationTimeSlot(reservationTimeSlot);

                if (reservation == null)
                {
                    return(NotFound());
                }

                return(Ok(reservation));
            }
            catch (NullReferenceException)
            {
                return(NotFound());
            }
            catch (Exception)
            {
                return(BadRequest());
            }
        }
Esempio n. 2
0
        public async Task <ActionResult <ReservationTimeSlot> > Reservation([FromBody] ReservationTimeSlot reservation)
        {
            string accountID = this.User?.FindFirst(ClaimTypes.NameIdentifier)?.Value;

            if (accountID == null)
            {
                return(Unauthorized());
            }

            try
            {
                ParkingSpot parkingSpot = await parkingSpotManager.GetFreeParkingSpot(reservation.startReservation, reservation.endReservation);

                if (parkingSpot == null)
                {
                    return(NotFound("No parking spots available"));
                }
                reservation.parkingSpotID = parkingSpot.parkingSpotID;
                reservation.accountID     = accountID;
                ReservationTimeSlot newReservation = await reservationTimeSlotManager.CreateReservationTimeSlot(reservation);

                return(Ok(newReservation));
            }
            catch (Exception)
            {
                return(BadRequest());
            }
        }