public async Task <ActionResult <string> > Get([FromQuery(Name = "trainId")] string trainId,
                                                       [FromQuery(Name = "numberOfSeats")] int numberOfSeats)
        {
            var manager = new WebTicketManager();

            return(await manager.Reserve(trainId, numberOfSeats));
        }
Beispiel #2
0
        public void Reserve_all_seats_in_the_same_coach()
        {
            const int seatsRequestedCount = 2;

            var trainDataService        = BuildTrainDataService(TrainId, TrainTopologyGenerator.With_2_coaches_and_9_seats_already_reserved_in_the_first_coach());
            var bookingReferenceService = BuildBookingReferenceService(BookingReference);

            var webTicketManager = new WebTicketManager(trainDataService, bookingReferenceService);
            var jsonReservation  = webTicketManager.Reserve(TrainId, seatsRequestedCount).Result;

            Check.That(jsonReservation)
            .IsEqualTo($"{{\"train_id\": \"{TrainId}\", \"booking_reference\": \"{BookingReference}\", \"seats\": [\"1B\", \"2B\"]}}");
        }
Beispiel #3
0
        public void Not_reserve_seats_when_it_exceed_max_capacty_threshold()
        {
            const int seatsRequestedCount = 3;

            var trainDataService        = BuildTrainDataService(TrainId, TrainTopologyGenerator.With_10_seats_and_6_already_reserved());
            var bookingReferenceService = BuildBookingReferenceService(BookingReference);

            var webTicketManager = new WebTicketManager(trainDataService, bookingReferenceService);
            var jsonReservation  = webTicketManager.Reserve(TrainId, seatsRequestedCount).Result;

            Check.That(jsonReservation)
            .IsEqualTo($"{{\"train_id\": \"{TrainId}\", \"booking_reference\": \"\", \"seats\": []}}");
        }
Beispiel #4
0
        public void Reserve_seats_when_train_is_empty()
        {
            const int seatsRequestedCount = 3;

            var trainDataService        = BuildTrainDataService(TrainId, TrainTopologyGenerator.With_10_available_seats());
            var bookingReferenceService = BuildBookingReferenceService(BookingReference);

            var webTicketManager = new WebTicketManager(trainDataService, bookingReferenceService);
            var jsonReservation  = webTicketManager.Reserve(TrainId, seatsRequestedCount).Result;

            Check.That(jsonReservation)
            .IsEqualTo($"{{\"train_id\": \"{TrainId}\", \"booking_reference\": \"{BookingReference}\", \"seats\": [\"1A\", \"2A\", \"3A\"]}}");
        }
Beispiel #5
0
        private static void Main(string[] args)
        {
            var train = args[0];
            var seats = int.Parse(args[1]);

            var manager = new WebTicketManager();

            var jsonResult = manager.Reserve(train, seats);

            Console.WriteLine(jsonResult.Result);

            Console.WriteLine("Type <enter> to exit.");
            Console.ReadLine();
        }
Beispiel #6
0
        public async Task <string> Post([FromBody] ReservationRequestDto reservationRequest)
        {
            var manager = new WebTicketManager();

            return(await manager.Reserve(reservationRequest.train_id, reservationRequest.number_of_seats));
        }