예제 #1
0
        public async Task <dto.GetPostCommitResultsResponse> GetPostCommitResults(bool resetCounter = false)
        {
            // if call doesn't qualify for another nav call, then just return result of last call
            if ((await _sessionBag.PostCommitResultsResponse()) != null &&
                (((await _sessionBag.PostCommitResultsResponse()).SessionPaymentQueryCount >= _commitBookingSettings.MaxQueryCount && !resetCounter) ||
                 (DateTime.UtcNow - (await _sessionBag.PostCommitResultsResponse()).PaymentQueryLastCall).TotalSeconds < _commitBookingSettings.RepeatQueryIntervalSecs))
            {
                return(await _sessionBag.PostCommitResultsResponse());
            }
            if (resetCounter)
            {
                await _sessionBag.SetPostCommitResultsResponse(null);
            }
            var response = await _client.GetPostCommitResultsAsync(new GetPostCommitResultsRequest
            {
                ContractVersion        = _navApiContractVer,
                MessageContractVersion = _navMsgContractVer,
                Signature = await _sessionBag.Signature(),
                EnableExceptionStackTrace = false,
                IncludeBookingDelta       = true
            });

            //_navApiContractVer, false,
            //_navMsgContractVer, await _sessionBag.Signature(), true);
            await _sessionBag.SetPostCommitResultsResponse(Mapper.Map <dto.GetPostCommitResultsResponse>(response, m => m.AfterMap(SetPollingValues)));

            return(await _sessionBag.PostCommitResultsResponse());
        }