public Result CancelReservation(int reservationId, int userId)
        {
            Reservation reservation = reservationRepository.GetById(reservationId);

            if (reservation == null)
            {
                return(new Result(false));
            }

            if (reservation.ReservationStatus == ReservationStatus.Reserved) // Check reservation date if older than 30 min or the scheduled movie starts in less than 15 minues
            {
                ScheduleSlot scheduleSlot = scheduleRepository.GetScheduleSlotById(reservation.ScheduleSlotId);
                if (scheduleSlot == null)
                {
                    return(new Result(false));
                }

                ReservationDto reservationDto = parser.ToReservationDto(reservation);

                //Check if reservation is older than 30 minutes or if movie start is less than 15 minutes away. If so deny the cancellation
                if (DateTime.Now.Subtract(reservation.BookingDate).TotalMinutes < 30 || scheduleSlot.Start.Subtract(DateTime.Now).TotalMinutes < 15)
                {
                    return(new Result(false));
                }
            }

            return(reservationRepository.CancelReservation(reservation, userId));
        }
Beispiel #2
0
        public bool CancelReservation(int reservationID)
        {
            var reservation = _reservationRepository.GetById(reservationID);

            _reservationRepository.CancelReservation(reservation);
            return(true);
        }
        public IActionResult Delete(int id)
        {
            if (id > 0)
            {
                _reservationRepository.CancelReservation(id);
                return(Ok());
            }

            return(BadRequest());
        }
        public async Task <bool> Handle(CancelReservationCommand request, CancellationToken cancellationToken)
        {
            if (request is null)
            {
                return(false);
            }

            var response = await _repo.CancelReservation(request.ReservationId);

            return(response);
        }
        public JsonResult CancelReservation(int id)
        {
            if (ModelState.IsValid)
            {
                if (_reservationRepository.CancelReservation(id))
                {
                    return(Json(new { success = true }, JsonRequestBehavior.AllowGet));
                }
            }

            return(Json(new { success = false }, JsonRequestBehavior.AllowGet));
        }
Beispiel #6
0
        public NewTicketWithReservationSummary New(ITicketWithReservationCreation ticket)
        {
            IReservation reservation = reservationRepo.GetReservationyId(ticket.ReservationId);

            if (reservation.Canceled)
            {
                return(new NewTicketWithReservationSummary(false, $"You can't purchase a ticket as reservation with id {reservation.Id} has already been canceled"));
            }

            reservationRepo.CancelReservation(reservation);

            return(newTicketWithRes.New(ticket));
        }
 public CancelReservationSummary Cancel(long reservationId)
 {
     if (!reservationRepository.ReservationExists(reservationId))
     {
         return new CancelReservationSummary(false, "No such reservation exists!", System.Net.HttpStatusCode.NotFound);
     }
     else if (!reservationRepository.ReservationIsActive(reservationId))
     {
         return new CancelReservationSummary
             (false, "Reservation is no longer active, and so cannot be cancelled!", System.Net.HttpStatusCode.BadRequest);
     }
     reservationRepository.CancelReservation(reservationId);
     return new CancelReservationSummary(true, "Success.", System.Net.HttpStatusCode.OK);
 }
        /// <summary>
        ///     Cacnel a reservation by its creator's username and confirmation number
        /// </summary>
        /// <param name="confirmationNumber">confirmation number of the reservation</param>
        /// <returns>true if successfully cancelled</returns>
        public bool CancelReservation(Guid confirmationNumber, DateTime now)
        {
            if (!CanBeCanceled(confirmationNumber, now))
            {
                return(false);
            }

            Reservation reservation = _reservationRepository.GetReservation(confirmationNumber);

            _reservationRepository.CancelReservation(confirmationNumber);
            DateTime checkDate = now.Date;

            while (checkDate < reservation.EndDate)
            {
                _roomRepository.UpdateRoomOccupancy(reservation.RoomType, checkDate, 1);
                checkDate = checkDate.AddDays(1);
            }
            _roomRepository.Save();
            _reservationRepository.Save();
            return(true);
        }
Beispiel #9
0
        public void CancelReservation(IReservation reservation)
        {
            var reservationToCancel = reservationRepository.FindReservationById(reservation.Id);

            reservationRepository.CancelReservation(reservationToCancel);
        }
Beispiel #10
0
        public void CancelReservation(int reservationID)
        {
            var reservation = _reservationRepository.GetById(reservationID);

            _reservationRepository.CancelReservation(reservation);
        }