public static async Task <Agreement> SuspendBillingAgreement(string agreementId)
        {
            var client = PayPalConfiguration.GetClient();

            AgreementSuspendRequest request = new AgreementSuspendRequest(agreementId);

            request.RequestBody(new AgreementStateDescriptor
            {
                Note = "Suspending the agreement"
            });

            try
            {
                HttpResponse response = await client.Execute(request);

                var statusCode = response.StatusCode;
                return(response.Result <Agreement>());
            }
            catch (HttpException httpException)
            {
                var statusCode = httpException.StatusCode;
                var debugId    = httpException.Headers.GetValues("PayPal-Debug-Id").FirstOrDefault();

                throw httpException;
            }
        }
        public async Task <IActionResult> Suspend(string id)
        {
            var client = _clientFactory.GetClient();

            var request = new AgreementSuspendRequest(id).RequestBody(new AgreementStateDescriptor()
            {
                Note = "Suspended"
            });
            await client.Execute(request);

            return(RedirectToAction("Details", new { id = id }));
        }