/*
         This method is Used for creating webhooks that will be triggered when the specified event takes place.
         */
        public EventSubscription CreateEventSubscription(Oauth2Token token, EventSubscription events)
        {
            EventSubscription result = null;
            try
            {
                string requestBody = JsonConvert.SerializeObject(events, Formatting.Indented);
                var client = new RestClient();
                client.BaseUrl = config.GetApiBase();

                var request = new RestRequest("/event_subscription", Method.POST)
                        .AddHeader("Content-Type", "application/json")
                        .AddHeader("Authorization", "Bearer " + token.AccessToken);
                request.AddParameter("text/json", requestBody, ParameterType.RequestBody);

                var httpResponse = client.Execute(request);
                string json = httpResponse.Content.ToString();
                result = JsonConvert.DeserializeObject<EventSubscription>(json);
            }
            catch(Exception ex)
            {
                Console.WriteLine(string.Format("Exception: {0}", ex.Message));
                throw;
            }
            return result;
        }
        public void DeleteEventSubscription()
        {
            string randomEmail = "lukeskywalker" + DateTime.Now.ToBinary().ToString() + "@mailinator.com";
            User user = new User();
            user.Email = randomEmail;
            user.Password = "******";
            user.FirstName = "firstName";
            user.LastName = "LastName";

            User resultUser = cudasign.userService.Create(user);

            Assert.IsNotNull("No user id from creating user", resultUser.Id);
            resultUser.Password = "******";

            Oauth2Token requestedToken = cudasign.authenticationService.RequestToken(resultUser);
            Assert.IsNotNull("Access Token", requestedToken.AccessToken);

            EventSubscription evs = new EventSubscription();
            evs.Event = "document.create";
            evs.CallbackUrl = "https://www.myapp.com/path/to/callback.php";
            EventSubscription res = cudasign.documentService.CreateEventSubscription(requestedToken, evs);
            Assert.IsNotNull("Subscription Id Created", res.Id);

            EventSubscription deleteEvent = cudasign.documentService.DeleteEventSubscription(requestedToken, res.Id);
            Assert.AreEqual("deleted", deleteEvent.Status);
        }