private static string GetPostParameters(ICallCriteria criteria)
 {
     return string.Join("&", criteria.PostParameters
                                         .AllKeys
                                         .Select(key => key + "=" + criteria.PostParameters[key])
                                         .ToArray());
 }
Example #2
0
        public string GetResponseStringFor(ICallCriteria criteria, AuthorizationHeader authHeader)
        {
            var responseValue = string.Empty;

            var webClient = new WebClient();
            webClient.Headers.Add("AUTHORIZATION", authHeader.Value);

            try
            {
                using (webClient)
                {
                    if (CallHasPostParameters(criteria))
                    {
                        var uploadResponse = webClient.UploadValues(criteria.CallParameters.Url, criteria.PostParameters);
                        responseValue = Encoding.ASCII.GetString(uploadResponse);
                    }
                    else
                    {
                        responseValue = webClient.DownloadString(criteria.CallParameters.Url);
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Unable to get response for url '{0}' - {1}", ex);
            }

            return responseValue;
        }
        public ResponseViewModel Build(ICallCriteria criteria)
        {
            var authHeader = _authorizationHeaderBuilder.Build(criteria.CallParameters);
            var responseString = _webResponseBuilder.GetResponseStringFor(criteria, authHeader);

            return new ResponseViewModel
                {
                    PartnerId = criteria.CallParameters.PartnerId,
                    ConsumerKey = criteria.CallParameters.ConsumerKey,
                    ConsumerSecret = criteria.CallParameters.ConsumerSecret,
                    Url = criteria.CallParameters.Url,
                    Response = responseString,
                    AuthHeaders = authHeader.Value,
                    PostParameters = GetPostParameters(criteria)
                };
        }
Example #4
0
 private static bool CallHasPostParameters(ICallCriteria criteria)
 {
     return criteria.PostParameters != null && criteria.PostParameters.Count > 0;
 }