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)); }
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\"]}}"); }
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\": []}}"); }
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\"]}}"); }
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(); }
public async Task <string> Post([FromBody] ReservationRequestDto reservationRequest) { var manager = new WebTicketManager(); return(await manager.Reserve(reservationRequest.train_id, reservationRequest.number_of_seats)); }