public void Execute <T>(Action <SparkApiEventArgs <T> > completedhandler) where T : new()
        {
            if (Authenticator != null)
            {
                Authenticator.AccessToken(response =>
                {
                    if (response == null || response.IsSuccess == false || response.Data == null)
                    {
                        SDKLogger.Instance.Error("ServiceRequest.Execute.accessToken Failed");
                        completedhandler?.Invoke(new SparkApiEventArgs <T>(false, null, default(T)));
                        return;
                    }

                    this.AccessToken = (string)response.Data;

                    ClientHandler.Execute <T>(this, resp =>
                    {
                        completedhandler?.Invoke(resp);
                        return;
                    });
                });
            }
            else
            {
                ClientHandler.Execute <T>(this, resp =>
                {
                    completedhandler?.Invoke(resp);
                    return;
                });
            }
        }
        public void Execute <T>(Action <WebexApiEventArgs <T> > completedhandler) where T : new()
        {
            Authenticator?.AccessToken(response =>
            {
                if (response == null || !response.IsSuccess || response.Data == null)
                {
                    SdkLogger.Instance.Error("ServiceRequest.Execute.accessToken Failed");
                    completedhandler?.Invoke(new WebexApiEventArgs <T>(false, null, default(T)));
                    return;
                }

                this.AccessToken = response.Data;

                ClientHandler.Execute <T>(this, resp =>
                {
                    HandleResponse <T>(resp, completedhandler);
                });
            });
        }