internal void UpdateBillingAgreement(string profileId, double newCost, string desc)
        {
            if (!String.IsNullOrEmpty(profileId))
            {
                NvpUpdateRecurringPaymentsProfile action = new NvpUpdateRecurringPaymentsProfile();
                SetDefaults(action);

                action.Add(NvpUpdateRecurringPaymentsProfile.Request._PROFILEID, profileId);
                action.Add(NvpUpdateRecurringPaymentsProfile.Request.DESC, desc);
                action.Add(NvpUpdateRecurringPaymentsProfile.Request.AMT, newCost.ToString("f"));

                Boolean result = action.Post();
                if (!result)
                    throw PaypalException.GenerateException(action);
            }
        }
        internal void ExtendTrialPeriod(string profileId, Int32 numberOfCycles)
        {
            if (!String.IsNullOrEmpty(profileId))
            {
                NvpUpdateRecurringPaymentsProfile action = new NvpUpdateRecurringPaymentsProfile();
                SetDefaults(action);

                action.Add(NvpUpdateRecurringPaymentsProfile.Request._PROFILEID, profileId);
                action.Add("TRIALTOTALBILLINGCYCLES", numberOfCycles.ToString());

                Boolean result = action.Post();
                if (!result)
                    throw PaypalException.GenerateException(action);
            }
        }