/// <summary>
            /// Gets loyalty card transactions from AX.
            /// </summary>
            /// <param name="request">The get loyalty card transactions request.</param>
            /// <returns>The get loyalty card transactions response.</returns>
            private static GetLoyaltyCardTransactionsRealtimeResponse GetLoyaltyCard(GetLoyaltyCardTransactionsRealtimeRequest request)
            {
                var transactionService = new TransactionService.TransactionServiceClient(request.RequestContext);

                PagedResult <LoyaltyCardTransaction> transactions = transactionService.GetLoyaltyCardTransactions(
                    request.LoyaltyCardNumber,
                    request.RewardPointId,
                    request.QueryResultSettings.Paging.Top,
                    request.QueryResultSettings.Paging.Skip,
                    request.QueryResultSettings.Paging.CalculateRecordCount);

                return(new GetLoyaltyCardTransactionsRealtimeResponse(transactions));
            }
            /// <summary>
            /// Executes the workflow to get the loyalty card transactions.
            /// </summary>
            /// <param name="request">The request.</param>
            /// <returns>The response.</returns>
            protected override GetLoyaltyCardTransactionsResponse Process(GetLoyaltyCardTransactionsRequest request)
            {
                ThrowIf.Null(request, "request");
                ThrowIf.NullOrWhiteSpace(request.LoyaltyCardNumber, "request.LoyaltyCardNumber");
                ThrowIf.NullOrWhiteSpace(request.RewardPointId, "request.RewardPointId");
                ThrowIf.Null(request.QueryResultSettings, "request.QueryResultSettings");
                ThrowIf.Null(request.QueryResultSettings.Paging, "request.QueryResultSettings.Paging");

                var getLoyaltyCardStatusRequest = new GetLoyaltyCardStatusServiceRequest(request.LoyaltyCardNumber);
                GetLoyaltyCardStatusServiceResponse getLoyaltyCardStatusResponse = this.Context.Execute <GetLoyaltyCardStatusServiceResponse>(getLoyaltyCardStatusRequest);

                var validateCustomerAccountRequest = new GetValidatedCustomerAccountNumberServiceRequest(getLoyaltyCardStatusResponse.LoyaltyCard.CustomerAccount, throwOnValidationFailure: true);

                request.RequestContext.Execute <GetValidatedCustomerAccountNumberServiceResponse>(validateCustomerAccountRequest);

                var realtimeRequest = new GetLoyaltyCardTransactionsRealtimeRequest(
                    request.LoyaltyCardNumber,
                    request.RewardPointId,
                    request.QueryResultSettings);

                GetLoyaltyCardTransactionsRealtimeResponse realtimeResponse = request.RequestContext.Execute <GetLoyaltyCardTransactionsRealtimeResponse>(realtimeRequest);

                return(new GetLoyaltyCardTransactionsResponse(realtimeResponse.LoyaltyCardTransactions));
            }