示例#1
0
        public async Task <EmrMetricSource> Read(AuthProtocol authProtocol, string url, bool diffSupport)
        {
            EmrMetricSource metricSoruce = null;
            string          metricsUrl   = string.Empty;
            var             mapper       = diffSupport ? ExtractDiffMapper.Instance : ExtractMapper.Instance;

            if (authProtocol.HasAuth)
            {
                _httpClient.DefaultRequestHeaders.Authorization =
                    new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes($"{authProtocol.UserName}:{authProtocol.Password}")));
            }

            if (authProtocol.HasToken)
            {
                _httpClient.DefaultRequestHeaders.Add("Token", authProtocol.AuthToken);
            }

            try
            {
                metricsUrl = GetUrl(authProtocol.Url, url);
                var response = await _httpClient.GetAsync(metricsUrl);

                if (response.IsSuccessStatusCode)
                {
                    metricSoruce = await response.Content.ReadAsJsonAsync <EmrMetricSource>();
                }
                else
                {
                    response.EnsureSuccessStatusCode();
                }
            }
            catch (Exception e)
            {
                Log.Error(new string('-', 40));
                Log.Error($"Error Reading metrics on [{metricsUrl}]");
                Log.Error(e.Message, "Metrics Error");
                Log.Error(new string('-', 40));
            }

            if (null != metricSoruce)
            {
                try
                {
                    var metric = mapper.Map <EmrMetricSource, EmrMetric>(metricSoruce);
                    _emrMetricRepository.CreateOrUpdate(metric);
                }
                catch (Exception e)
                {
                    Log.Error(e, "Error Saving metrics");
                }
            }

            return(metricSoruce);
        }
示例#2
0
        public async Task <EmrMetricSource> Read(AuthProtocol authProtocol, string url)
        {
            EmrMetricSource metricSoruce = null;

            if (authProtocol.HasToken)
            {
                _httpClient.DefaultRequestHeaders.Add("Token", authProtocol.AuthToken);
            }

            try
            {
                var response = await _httpClient.GetAsync(GetUrl(authProtocol.Url, url));

                if (response.IsSuccessStatusCode)
                {
                    metricSoruce = await response.Content.ReadAsJsonAsync <EmrMetricSource>();
                }
                else
                {
                    response.EnsureSuccessStatusCode();
                }
            }
            catch (Exception e)
            {
                Log.Error(e, "Error Reading metrics");
            }

            if (null != metricSoruce)
            {
                try
                {
                    var metric = Mapper.Map <EmrMetricSource, EmrMetric>(metricSoruce);
                    _emrMetricRepository.CreateOrUpdate(metric);
                }
                catch (Exception e)
                {
                    Log.Error(e, "Error Saving metrics");
                }
            }

            return(metricSoruce);
        }