////////////////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>   Purchase card. </summary>
        ///
        /// <param name="enumTangoCardServiceApi">  The enum tango card service api. </param>
        /// <param name="username">                 The username. </param>
        /// <param name="password">                 The password. </param>
        /// <param name="cardSku">                  The card sku. </param>
        /// <param name="cardValue">                The card value. </param>
        /// <param name="tcSend">                   Determines if Tango Card Service will send an email with gift card information to recipient. </param>
        /// <param name="recipientName">            Name of the recipient. </param>
        /// <param name="recipientEmail">           The recipient email. </param>
        /// <param name="giftMessage">              Message describing the gift. </param>
        /// <param name="giftFrom">                 The gift from. </param>
        /// <param name="companyIdentifier">        (optional) The Company identifier for which Email Template to use when sending Gift Card. </param>
        /// <param name="response">                 [out] The response. </param>
        ///
        /// <returns>   true if it succeeds, false if it fails. </returns>
        ////////////////////////////////////////////////////////////////////////////////////////////////////
        public static bool PurchaseCard(
            TangoCardServiceApiEnum enumTangoCardServiceApi,
            string username,
            string password,
            string cardSku,
            int cardValue,
            bool tcSend,
            string recipientName,
            string recipientEmail,
            string giftMessage,
            string giftFrom,
            string companyIdentifier,
            out Version2_PurchaseCard_Response response
            )
        {
            // set up the request
            var request = new Version2_PurchaseCard_Request
            (
                enumTangoCardServiceApi: enumTangoCardServiceApi,
                username:       String.IsNullOrEmpty(username) ? null : username.Trim(),
                password:       password,
                cardSku:        cardSku.Trim(),
                cardValue:      cardValue,
                tcSend:         tcSend,
                recipientName:  String.IsNullOrEmpty(recipientName)         ? null : recipientName.Trim(),
                recipientEmail: String.IsNullOrEmpty(recipientEmail)        ? null : recipientEmail.Trim(),
                giftMessage:    String.IsNullOrEmpty(giftMessage)           ? null : giftMessage.Trim().Replace(System.Environment.NewLine, "<br>"),
                giftFrom:       String.IsNullOrEmpty(giftFrom)              ? null : giftFrom.Trim(),
                companyIdentifier: String.IsNullOrEmpty(companyIdentifier)  ? null : companyIdentifier.Trim()
            );

            // make the request
            return request.Execute(out response);
        }
 ////////////////////////////////////////////////////////////////////////////////////////////////////
 /// <summary>   Executes the given out PurchaseCardResponse. </summary>
 ///
 /// <param name="response"> [out] The response. </param>
 ///
 /// <returns>   true if it succeeds, false if it fails. </returns>
 ////////////////////////////////////////////////////////////////////////////////////////////////////
 public bool Execute(out Version2_PurchaseCard_Response response)
 {
     string requestSerialized = this.Serialize<Version2_PurchaseCard_Request>();
     return base.Execute<Version2_PurchaseCard_Response>(requestSerialized, out response);
 }