Esempio n. 1
0
        public NewReservationSummery New(IReservationRequest reservationReq)
        {
            string       newGuid     = Guid.NewGuid().ToString("N").Substring(0, 5);
            IReservation reservation = reservationRepo.GetRestInfo(reservationReq.ProjectionId);

            bool isActive = true;

            IReservation newReservetion = reservationRepo.Insert(new Reservation(
                                                                     reservationReq.ProjectionId,
                                                                     newGuid,
                                                                     reservation.ProjectionStartDate,
                                                                     reservation.MovieName,
                                                                     reservation.CinemaName,
                                                                     reservation.RoomNum,
                                                                     reservationReq.Row,
                                                                     reservationReq.Column,
                                                                     isActive));

            IReservationTicket reservetionTicket = new ReservationTicketModel(
                newGuid,
                reservation.ProjectionStartDate,
                reservation.MovieName,
                reservation.CinemaName,
                reservation.RoomNum,
                reservationReq.Row,
                reservationReq.Column
                );

            return(new NewReservationSummery(true, reservetionTicket));
        }
Esempio n. 2
0
 public NewReservationSummary(bool createdSuccessfully, HttpStatusCode statusCode, string message, ReservationTicketModel reservationTicket)
 {
     CreatedSuccessfully = createdSuccessfully;
     StatusCode          = statusCode;
     Message             = message;
     ReservationTicket   = reservationTicket;
 }
Esempio n. 3
0
        public NewReservationSummary Create(ReservationCreationModel reservationCreationModel)
        {
            Projection projection = (Projection)reservationRepository.GetProjection(reservationCreationModel.ProjectionId);

            if (projection == null)
            {
                return(new NewReservationSummary(false, System.Net.HttpStatusCode.NotFound, "Projection not found!", null));
            }
            else if (reservationRepository.SeatsCanNoLongerBeReserved(projection))
            {
                return(new NewReservationSummary(false, System.Net.HttpStatusCode.BadRequest, "You can no longer reserve seats for this projection!", null));
            }
            else if (!reservationRepository.SeatExists(reservationCreationModel.RowNumber, reservationCreationModel.ColumnNumber, projection))
            {
                return(new NewReservationSummary(false, System.Net.HttpStatusCode.BadRequest, "Invalid seat or column number!", null));
            }
            else if (ticketRepository.SeatIsOccupied(reservationCreationModel.RowNumber, reservationCreationModel.ColumnNumber, projection))
            {
                return(new NewReservationSummary(false, System.Net.HttpStatusCode.BadRequest, "That seat is already taken!", null));
            }
            IReservation           reservation            = reservationRepository.CreateNewReservation(reservationCreationModel);
            ReservationTicketModel reservationTicketModel =
                new ReservationTicketModel
                    (reservation.Id, projection.StartDate, projection.Movie.Name, projection.Room.Cinema.Name,
                    projection.Room.Number, reservation.RowNumber, reservation.ColumnNumber);

            return(new NewReservationSummary(true, System.Net.HttpStatusCode.OK, "Created Successfully!", reservationTicketModel));
        }