public async Task <dto.ApplyPromotionResponse> ApplyPromotion(dto.ApplyPromotionRequestData request) { var signature = !string.IsNullOrEmpty(await _sessionBag.Signature()) ? await _sessionBag.Signature() : await _userSessionService.GetAnonymousSharedSignature(); var reqData = Mapper.Map <ApplyPromotionRequestData>(request); var response = await _client.ApplyPromotionAsync(new ApplyPromotionRequest { ContractVersion = _navApiContractVer, EnableExceptionStackTrace = false, Signature = signature, ApplyPromotionReqData = reqData }); await GetSessionBooking(true); var convertedResponse = Mapper.Map <dto.ApplyPromotionResponse>(response); return(convertedResponse); }