예제 #1
0
        public async Task <dto.GetSSRAvailabilityForBookingResponse> GetSSRAvailabilityForBooking()
        {
            var legKeys = new List <LegKey>();

            foreach (var journey in (await _sessionBag.Booking()).Journeys)
            {
                foreach (var segment in journey.Segments)
                {
                    foreach (var leg in segment.Legs)
                    {
                        legKeys.Add(new LegKey
                        {
                            ArrivalStation   = segment.ArrivalStation,
                            DepartureStation = segment.DepartureStation,
                            CarrierCode      = segment.FlightDesignator.CarrierCode.Trim(),
                            DepartureDate    = segment.STD,
                            FlightNumber     = segment.FlightDesignator.FlightNumber.Trim(),
                            OpSuffix         = segment.FlightDesignator.OpSuffix.Trim()
                        });
                    }
                }
            }
            var ssrAvailabilityForBookingRequest = new SSRAvailabilityForBookingRequest
            {
                CurrencyCode           = (await _sessionBag.Booking()).CurrencyCode,
                SSRAvailabilityMode    = SSRAvailabilityMode.NonBundledSSRs,
                InventoryControlled    = true,
                NonInventoryControlled = true,
                NonSeatDependent       = true,
                SeatDependent          = true,
                PassengerNumberList    = (await _sessionBag.Booking()).Passengers.Select(p => p.PassengerNumber).ToArray(),
                SegmentKeyList         = legKeys.ToArray()
            };
            var response = await _client.GetSSRAvailabilityForBookingAsync(new GetSSRAvailabilityForBookingRequest
            {
                ContractVersion        = _navApiContractVer,
                MessageContractVersion = _navMsgContractVer,
                Signature = await _sessionBag.Signature(),
                EnableExceptionStackTrace        = false,
                SSRAvailabilityForBookingRequest = ssrAvailabilityForBookingRequest
            });

            //_navApiContractVer, false, _navMsgContractVer,
            //await _sessionBag.Signature(), ssrAvailabilityForBookingRequest);
            return(Mapper.Map <dto.GetSSRAvailabilityForBookingResponse>(response));
        }