private Response ApiCall(string method, Request request)
        {
            if (!IsAuthorized()) throw new Exception("Access has Expired");

            HttpRequestMessage requestMessage = new HttpRequestMessage();

            requestMessage.Content = request.GetHttpContent();
            requestMessage.Method = request.GetHttpMethod(method);
            requestMessage.RequestUri = request.GetUri();
            
            request.GetXhttpOverRideHeader(requestMessage);

            return new Response(_client.SendAsync(requestMessage).Result);
        }
        /// <summary>
        ///     Authentication, Refresh and Revoke requests all require an Authentication Header Value of "Basic".  This is a
        ///     special method to handle those requests.
        /// </summary>
        /// <param name="request">
        ///     A Request object with a url and a dictionary of key value pairs (<c>Authenticate</c>,
        ///     <c>Refresh</c>, <c>Revoke</c>)
        /// </param>
        /// <returns>Response object</returns>
        private Response AuthCall(Request request)
        {
            _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", GetApiKey());
           
            var result = _client.PostAsync(request.GetUrl(), request.GetHttpContent()).Result;

            return new Response(result);
        }