コード例 #1
0
        public async Task <dto.PriceItinararyResponse> GetPriceItinerary(dto.SellJourneyByKeyRequestData sellJourneyByKeyRequestData)
        {
            var signature = !string.IsNullOrEmpty(await _sessionBag.Signature())
                ? await _sessionBag.Signature()
                : await _userSessionService.GetAnonymousSharedSignature();

            CleanSellJourneyByKeyRequestData(sellJourneyByKeyRequestData);
            var infantSegmentSSRRequests = await CreateSegmentSSRRequests(sellJourneyByKeyRequestData);

            var priceItineraryRequest = new ItineraryPriceRequest
            {
                SSRRequest = new SSRRequest
                {
                    SegmentSSRRequests = infantSegmentSSRRequests,
                    CurrencyCode       = sellJourneyByKeyRequestData.CurrencyCode
                },
                TypeOfSale       = Mapper.Map <TypeOfSale>(sellJourneyByKeyRequestData.TypeOfSale),
                PriceItineraryBy = PriceItineraryBy.JourneyBySellKey,
                SellByKeyRequest = Mapper.Map <SellJourneyByKeyRequestData>(sellJourneyByKeyRequestData, m => m.AfterMap(SetFareTypes))
            };
            var stopWatch = _perfLogSettings.EnableNavApiLogging ? Stopwatch.StartNew() : null;
            var response  = await _client.GetItineraryPriceAsync(new PriceItineraryRequest
            {
                ContractVersion        = _navApiContractVer,
                MessageContractVersion = _navMsgContractVer,
                Signature = signature,
                EnableExceptionStackTrace = false,
                ItineraryPriceRequest     = priceItineraryRequest
            });

            //_navApiContractVer, false,
            //_navMsgContractVer, signature, priceItineraryRequest);
            if (_perfLogSettings.EnableNavApiLogging && stopWatch != null)
            {
                stopWatch.Stop();
                var msecs = stopWatch.ElapsedMilliseconds;
                _logger.WriteTimedLog(msecs, "BookingManager.GetItineraryPriceAsync" + "|" + signature);
            }
            return(Mapper.Map <dto.PriceItinararyResponse>(response.Booking));
        }