public BaseClass(string apiKey   = null, string accessToken = null, string refreshToken = null,
                         string clientId = null)
        {
            if (apiKey != null)
            {
                _apiKey = apiKey;
            }
            if (accessToken != null)
            {
                _accessToken = accessToken;
            }
            if (refreshToken != null)
            {
                _refreshToken = refreshToken;
            }


            if (_apiKey != null && _accessToken != null)
            {
                throw new ArgumentException("Cannot use both api_key and access_token");
            }
            if ((_apiKey == null) && (_accessToken == null) && (_refreshToken == null))
            {
                throw new ArgumentException("Missing required credentials");
            }
            _options             = new Dictionary <string, object>();
            _options["api_base"] = "api.hubapi.com";
            UserWebClient        = new WindowsWebClient();
        }
        public BaseClass(string apiKey = null, string accessToken = null, string refreshToken = null,
                         string clientId = null)
        {
            if (apiKey != null) _apiKey = apiKey;
            if (accessToken != null) _accessToken = accessToken;
            if (refreshToken != null) _refreshToken = refreshToken;

            if (_apiKey != null && _accessToken != null)
            {
                throw new ArgumentException("Cannot use both api_key and access_token");
            }
            if ((_apiKey == null) && (_accessToken == null) && (_refreshToken == null))
            {
                throw new ArgumentException("Missing required credentials");
            }
            _options = new Dictionary<string, object>();
            _options["api_base"] = "api.hubapi.com";
            UserWebClient = new WindowsWebClient();
        }