Example #1
0
        public T Execute <T>(RestRequest request) where T : new()
        {
            T typedResponse;

            try
            {
                _accessToken = Authenticate();

                var client = new RestClient(BaseUrl);
                request.AddParameter("Authorization", string.Format("{0} {1}", _accessToken.Type, _accessToken.AccessToken),
                                     ParameterType.HttpHeader);
                var response = client.Execute(request);

                if (response.ErrorException != null)
                {
                    const string message       = "Error retrieving response. Check inner details for more info";
                    var          prozException = new ApplicationException(message, response.ErrorException);
                    throw prozException;
                }

                typedResponse = JsonConvert.DeserializeObject <T>(response.Content);
            }
            catch (Exception)
            {
                if (_numberOfRetries > 3)
                {
                    throw;
                }
                //try again
                _numberOfRetries++;
                typedResponse = Execute <T>(request);
            }

            return(typedResponse);
        }
Example #2
0
 public ProzApi()
 {
     _numberOfRetries = 0;
     _accessToken     = new ProzAccessToken();
 }