/// <summary>
        ///     Generates the transaction request.
        /// </summary>
        internal virtual void GenerateRequest()
        {
            Logger.Instance.Log("PayPal.Payments.Transactions.BaseTransaction.GenerateRequest(): Entered",
                                PayflowConstants.SeverityDebug);
            try
            {
                _mRequestBuffer = new StringBuilder();
                RequestBuffer.Append(PayflowUtility.AppendToRequest(PayflowConstants.ParamTrxtype, TrxType));
                RequestBuffer.Append(PayflowUtility.AppendToRequest(PayflowConstants.ParamVerbosity, Verbosity));
                if (_mExtData != null && _mExtData.Count > 0)
                {
                    foreach (ExtendData ed in _mExtData)
                    {
                        if (ed != null)
                        {
                            ed.RequestBuffer = _mRequestBuffer;
                            ed.GenerateRequest();
                        }
                    }
                }

                if (Tender != null)
                {
                    Tender.RequestBuffer = _mRequestBuffer;
                    Tender.GenerateRequest();
                }

                if (_mInvoice != null)
                {
                    _mInvoice.RequestBuffer = _mRequestBuffer;
                    _mInvoice.GenerateRequest();
                }

                if (_mUserInfo != null)
                {
                    _mUserInfo.RequestBuffer = _mRequestBuffer;
                    _mUserInfo.GenerateRequest();
                }

                if (_mUserItem != null)
                {
                    _mUserItem.RequestBuffer = _mRequestBuffer;
                    _mUserItem.GenerateRequest();
                }

                if (BuyerAuthStatus != null)
                {
                    BuyerAuthStatus.RequestBuffer = _mRequestBuffer;
                    BuyerAuthStatus.GenerateRequest();
                }

                Logger.Instance.Log("PayPal.Payments.Transactions.BaseTransaction.GenerateRequest(): Exiting",
                                    PayflowConstants.SeverityDebug);
            }
            catch (BaseException)
            {
                throw;
            }
            catch (Exception ex)
            {
                var te = new TransactionException(ex);
                throw te;
            }
        }