public async Task <dto.RetrieveBookingResponse> RetrieveBooking(dto.RetrieveBookingRequest retrieveBookingRequest) { if (string.IsNullOrEmpty(await _sessionBag.Signature())) { await _userSessionService.AnonymousLogonUnique(); } var getBookingRequestData = new GetBookingRequestData { GetBookingBy = GetBookingBy.RecordLocator, GetByRecordLocator = Mapper.Map <GetByRecordLocator>(retrieveBookingRequest) }; var getBookingResponse = await _client.GetBookingAsync(new GetBookingRequest { ContractVersion = _navApiContractVer, MessageContractVersion = _navMsgContractVer, Signature = await _sessionBag.Signature(), EnableExceptionStackTrace = false, GetBookingReqData = getBookingRequestData }); if (getBookingResponse.Booking == null) { await _sessionBag.SetBooking(null); throw new dto.ResponseErrorException(dto.Enumerations.ResponseErrorCode.BookingNotFound, new[] { "Booking not found. " }); } var booking = Mapper.Map <dto.Booking>(getBookingResponse.Booking); await _sessionBag.SetBooking(booking); return(new dto.RetrieveBookingResponse { Booking = booking }); }