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); }
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); }