예제 #1
0
        public async Task <dto.LowFareTripAvailabilityResponse> FindLowFareFlights(dto.LowFareTripAvailabilityRequest request)
        {
            var signature = !string.IsNullOrEmpty(await _sessionBag.Signature())
                    ? await _sessionBag.Signature()
                    : await _userSessionService.GetAnonymousSharedSignature();

            var lowFareTripAvailabilityRequest = Mapper.Map <LowFareTripAvailabilityRequest>(request, m => m.AfterMap(SetFareTypes));
            var stopWatch = _perfLogSettings.EnableNavApiLogging ? Stopwatch.StartNew() : null;
            var response  = await _client.GetLowFareTripAvailabilityAsync(new GetLowFareTripAvailabilityRequest
            {
                ContractVersion        = _navApiContractVer,
                MessageContractVersion = _navMsgContractVer,
                Signature = signature,
                EnableExceptionStackTrace      = false,
                LowFareTripAvailabilityRequest = lowFareTripAvailabilityRequest
            });

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

            return(convertedResponse);
        }