Esempio n. 1
0
        public ReservationResponse MakeReservation(ReservationRequest request)
        {
            var trains = _repository.GetTrainByDestinationAndDate(request.Destination, request.ScheduledDate);

            if (trains == null || trains.Count() == 0)
            {
                throw new ArgumentException();
            }

            var train = trains.Where(x => x.SeatsInCoach >= request.Passengers.Length).FirstOrDefault();

            if (train == null)
            {
                throw new ArgumentException();
            }

            return(new ReservationResponse
            {
                Id = 1,
                Destination = train.Destination,
                ScheduledDate = train.ScheduledDate,
                Seats = request.Passengers.Select((x, i) => "A" + (i + 1)).ToArray(),
                TrainId = train.Id
            });
        }