static OxfordHttpWrapper()
        {
            var apiConfigHelper = ContainerHelper.Container.Resolve <IAPIConfigurationHelper>();

            coding_challenge_api_logger = ContainerHelper.Container.Resolve <ICodingChallengeApiLogger>();

            var url = apiConfigHelper?.APIConfiguration.OxfordDictionaryAPI.BaseUrl;

            VerboseLogging = apiConfigHelper?.APIConfiguration.APILogging.VerboseLogging ?? false;

            if (!string.IsNullOrEmpty(url))
            {
                client = new HttpClient
                {
                    BaseAddress = new Uri(url)
                }
            }
            ;
        }
Esempio n. 2
0
 public OxfordApiWrapper(IOxfordHttpWrapper oxfordHttpWrapper, IAPIConfigurationHelper apiConfigurationHelper, ICodingChallengeApiLogger codingChallengeApiLogger)
 {
     _oxfordHttpWrapper        = oxfordHttpWrapper;
     _apiConfigurationHelper   = apiConfigurationHelper;
     _codingChallengeApiLogger = codingChallengeApiLogger;
 }
Esempio n. 3
0
 public PixabayApiWrapper(IPixabayHttpWrapper pixabayHttpWrapper, IAPIConfigurationHelper apiConfigurationHelper, ICodingChallengeApiLogger codingChallengeApiLogger)
 {
     _pixabayHttpWrapper       = pixabayHttpWrapper;
     _apiConfigurationHelper   = apiConfigurationHelper;
     _codingChallengeApiLogger = codingChallengeApiLogger;
 }
Esempio n. 4
0
        public static T DeserializeHttpMessage <T>(this HttpResponseMessage response, ICodingChallengeApiLogger codingChallengeApiLogger, bool testing = false, bool verboseLogging = false)
            where T : class
        {
            try
            {
                T result;
                if (verboseLogging)
                {
                    if (response.StatusCode == HttpStatusCode.InternalServerError)
                    {
                        codingChallengeApiLogger.Log500Response();
                    }

                    dynamic actualResponseObject;

                    if (testing)
                    {
                        actualResponseObject = JsonConvert.DeserializeObject <dynamic>(
                            response.Content.ReadAsStringAsync().Result.Replace(REMOVE, string.Empty));
                    }
                    else
                    {
                        actualResponseObject = response.Content.ReadAsAsync <dynamic>().Result;
                    }

                    codingChallengeApiLogger.LogActualResponse(actualResponseObject, response.StatusCode, true);

                    var objString = JsonConvert.SerializeObject(actualResponseObject);

                    result = JsonConvert.DeserializeObject <T>(objString);

                    codingChallengeApiLogger.LogExpectedResponse(result, true);
                }
                else
                {
                    if (testing)
                    {
                        result = JsonConvert.DeserializeObject <T>(
                            response.Content.ReadAsStringAsync().Result.Replace(REMOVE, string.Empty));
                    }
                    else
                    {
                        result = response.Content.ReadAsAsync <T>().Result;
                    }
                }

                if (result is IStatus statusObject)
                {
                    statusObject.StatusCode = response.StatusCode;
                }

                return(result);
            }
            catch (Exception ex)
            {
                codingChallengeApiLogger.Log().Error(THERE_WAS_AN_ISSUE_LOGGING_THIS_MESSAGE + ex.GetInnerMostException().Message);
                return(null);
            }
        }