public Task Execute(IJobExecutionContext context) { var allAgentsInfo = _agentsRepository.GetAllAgentsInfo(); foreach (var agentInfo in allAgentsInfo) { var last = _repository.GetLast(agentInfo.AgentId); var request = new GetAllNetWorkMetricsApiRequest() { AgentUrl = agentInfo.AgentUrl, FromTime = last, ToTime = DateTimeOffset.UtcNow, }; var response = _client.GetAllNetworkMetrics(request); if (response != null) { if (response.Metrics[0].Time == last) { response.Metrics.RemoveAt(0); } foreach (var metric in response.Metrics) { var formatedMetric = _mapper.Map <NetworkMetric>(metric); formatedMetric.AgentId = agentInfo.AgentId; _repository.Create(formatedMetric); } } } return(Task.CompletedTask); }
public AllNetWorkMetricsApiResponse GetAllNetworkMetrics(GetAllNetWorkMetricsApiRequest request) { var fromParameter = request.FromTime.ToUnixTimeSeconds(); var toParameter = request.ToTime.ToUnixTimeSeconds(); var httpRequest = new HttpRequestMessage(HttpMethod.Get, $"{request.AgentUrl}/api/networkmetrics/from/{fromParameter}/to/{toParameter}"); try { HttpResponseMessage response = _httpClient.SendAsync(httpRequest).Result; using var responseStream = response.Content.ReadAsStreamAsync().Result; return(JsonSerializer.DeserializeAsync <AllNetWorkMetricsApiResponse>(responseStream).Result); } catch (Exception ex) { _logger.LogError(ex.Message); } return(null); }