Esempio n. 1
0
        public string ExecuteMultipartQuery(IMultipartHttpRequestParameters parameters)
        {
            var queryURL = parameters.Query;

            CleanupQueryURL(queryURL);
            var rateLimitTrackerOption = _tweetinviSettingsAccessor.RateLimitTrackerMode;

            parameters.Timeout = parameters.Timeout ?? TimeSpan.FromMilliseconds(_tweetinviSettingsAccessor.UploadTimeout);

            ITwitterQuery twitterQuery;

            if (!TryPrepareRequest(parameters, rateLimitTrackerOption, null, out twitterQuery))
            {
                return(null);
            }

            try
            {
                var jsonResult = _twitterRequester.ExecuteMultipartQuery(twitterQuery, parameters.ContentId, parameters.Binaries);

                QueryCompleted(twitterQuery, jsonResult, rateLimitTrackerOption);

                return(jsonResult);
            }
            catch (TwitterException ex)
            {
                HandleException(queryURL, rateLimitTrackerOption, ex.StatusCode, twitterQuery);

                throw;
            }
        }
Esempio n. 2
0
        public string ExecuteMultipartQuery(IMultipartHttpRequestParameters parameters)
        {
            string result;

            TryExecuteMultipartQuery(parameters, out result);

            return(result);
        }
 public static IMultipartHttpRequestParameters CloneForSingleBinary(this IMultipartHttpRequestParameters parameters, byte[] binary)
 {
     return(new MultipartHttpRequestParameters
     {
         Query = parameters.Query,
         Binaries = new List <byte[]> {
             binary
         },
         ContentId = parameters.ContentId,
         Timeout = parameters.Timeout,
         HttpMethod = parameters.HttpMethod
     });
 }
Esempio n. 4
0
        private bool TryExecuteMultipartQuery(IMultipartHttpRequestParameters parameters, out string result)
        {
            if (parameters.Query == null)
            {
                throw new ArgumentException("At least one of the arguments provided to the query was invalid.");
            }

            try
            {
                result = _twitterRequestHandler.ExecuteMultipartQuery(parameters);
                return(true);
            }
            catch (TwitterException ex)
            {
                HandleQueryException(ex);

                result = null;
                return(false);
            }
        }
        public string ExecuteMultipartQuery(IMultipartHttpRequestParameters parameters)
        {
            var queryURL = parameters.Query;

            CleanupQueryURL(queryURL);
            var rateLimitTrackerOption = _tweetinviSettingsAccessor.RateLimitTrackerMode;

            parameters.Timeout = parameters.Timeout ?? TimeSpan.FromMilliseconds(_tweetinviSettingsAccessor.UploadTimeout);

            ITwitterQuery twitterQuery;

            if (!TryPrepareRequest(parameters, rateLimitTrackerOption, null, true, out twitterQuery))
            {
                return(null);
            }

            try
            {
                IWebRequestResult webRequestResult;

                if (parameters.Binaries.IsNullOrEmpty())
                {
                    webRequestResult = _webRequestExecutor.ExecuteQuery(twitterQuery);
                }
                else
                {
                    webRequestResult = _webRequestExecutor.ExecuteMultipartQuery(twitterQuery, parameters.ContentId, parameters.Binaries);
                }

                QueryCompleted(twitterQuery, webRequestResult, rateLimitTrackerOption);

                return(webRequestResult.Response);
            }
            catch (TwitterException ex)
            {
                HandleException(queryURL, rateLimitTrackerOption, ex, twitterQuery);

                throw;
            }
        }
        public string ExecuteMultipartQuery(IMultipartHttpRequestParameters parameters)
        {
            var queryURL = parameters.Query;

            CleanupQueryURL(queryURL);
            var rateLimitTrackerOption = _tweetinviSettingsAccessor.RateLimitTrackerMode;

            parameters.Timeout = parameters.Timeout ?? TimeSpan.FromMilliseconds(_tweetinviSettingsAccessor.UploadTimeout);
            
            ITwitterQuery twitterQuery;
            if (!TryPrepareRequest(parameters, rateLimitTrackerOption, null, out twitterQuery))
            {
                return null;
            }

            try
            {
                var jsonResult = _twitterRequester.ExecuteMultipartQuery(twitterQuery, parameters.ContentId, parameters.Binaries);

                QueryCompleted(twitterQuery, jsonResult, rateLimitTrackerOption);

                return jsonResult;
            }
            catch (TwitterException ex)
            {
                HandleException(queryURL, rateLimitTrackerOption, ex.StatusCode, twitterQuery);

                throw;
            }
        }
Esempio n. 7
0
        public bool TryExecuteMultipartQuery(IMultipartHttpRequestParameters parameters)
        {
            string unused;

            return(TryExecuteMultipartQuery(parameters, out unused));
        }
Esempio n. 8
0
        // Multipart Query
        public T ExecuteMultipartQuery <T>(IMultipartHttpRequestParameters parameters, JsonConverter[] converters = null) where T : class
        {
            string jsonResponse = ExecuteMultipartQuery(parameters);

            return(_jsonObjectConverter.DeserializeObject <T>(jsonResponse, converters));
        }
Esempio n. 9
0
 /// <summary>
 /// Execute a POST mutlipart query an return the json result.
 /// </summary>
 public static string ExecuteJsonPOSTMultipartQuery(IMultipartHttpRequestParameters parameters)
 {
     return(Accessor.ExecuteMultipartQuery(parameters));
 }
Esempio n. 10
0
        // MultiPart Query

        /// <summary>
        /// Execute a POST mutlipart query an return the result as an object of type T.
        /// </summary>
        public static T ExecutePOSTMultipartQuery <T>(IMultipartHttpRequestParameters parameters) where T : class
        {
            return(Accessor.ExecuteMultipartQuery <T>(parameters));
        }