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)); }
public NewReservationSummary(bool createdSuccessfully, HttpStatusCode statusCode, string message, ReservationTicketModel reservationTicket) { CreatedSuccessfully = createdSuccessfully; StatusCode = statusCode; Message = message; ReservationTicket = reservationTicket; }
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)); }