public async Task <IActionResult> Statistic2() { string userString = HttpContext.Session.GetString("Login"); userString = userString != null ? userString : ""; StatisticFake statfake = new StatisticFake(); List <RabbitModels.RabbitStatistic> result = new List <RabbitModels.RabbitStatistic>(); var corrId = string.Format("{0}{1}", DateTime.Now.Ticks, Thread.CurrentThread.ManagedThreadId); string request; byte[] responseMessage; using (var client = new HttpClient()) { client.BaseAddress = new Uri(URLStatisticService); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); string requestString = "api/statistics/FromQueue"; HttpResponseMessage response = await client.GetAsync(requestString); request = "SERVICE: ArenaService \r\nGET: " + URLStatisticService + "/" + requestString + "\r\n" + client.DefaultRequestHeaders.ToString(); string responseString = response.Headers.ToString() + "\nStatus: " + response.StatusCode.ToString(); if (response.IsSuccessStatusCode) { responseMessage = await response.Content.ReadAsByteArrayAsync(); var json = await response.Content.ReadAsStringAsync(); result = JsonConvert.DeserializeObject <List <RabbitModels.RabbitStatistic> >(json); statfake.statistic = result; } else { responseMessage = Encoding.UTF8.GetBytes(response.ReasonPhrase); SendStatistic("Default", DateTime.Now, "Statistic", Request.HttpContext.Connection.RemoteIpAddress.ToString(), false, userString); return(BadRequest()); } await LogQuery(request, responseString, responseMessage); //Передаем список доступных городов с ID (для дальнейшей сверки) SendStatistic("Default", DateTime.Now, "Statistic", Request.HttpContext.Connection.RemoteIpAddress.ToString(), true, userString); return(View(statfake)); } }
public async Task <IEnumerable <VisitingData> > GetAnotherData() { //Dictionary<string, int> data = new Dictionary<string, int>(); List <VisitingData> data = new List <VisitingData>(); string userString = HttpContext.Session.GetString("Login"); userString = userString != null ? userString : ""; StatisticFake statfake = new StatisticFake(); List <RabbitModels.RabbitStatistic> result = new List <RabbitModels.RabbitStatistic>(); var corrId = string.Format("{0}{1}", DateTime.Now.Ticks, Thread.CurrentThread.ManagedThreadId); string request; byte[] responseMessage; using (var client = new HttpClient()) { client.BaseAddress = new Uri(URLStatisticService); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); string requestString = "api/statistics"; HttpResponseMessage response = await client.GetAsync(requestString); request = "SERVICE: ArenaService \r\nGET: " + URLStatisticService + "/" + requestString + "\r\n" + client.DefaultRequestHeaders.ToString(); string responseString = response.Headers.ToString() + "\nStatus: " + response.StatusCode.ToString(); if (response.IsSuccessStatusCode) { responseMessage = await response.Content.ReadAsByteArrayAsync(); var json = await response.Content.ReadAsStringAsync(); result = JsonConvert.DeserializeObject <List <RabbitModels.RabbitStatistic> >(json); statfake.statistic = result; } else { responseMessage = Encoding.UTF8.GetBytes(response.ReasonPhrase); SendStatistic("Default", DateTime.Now, "GetData", Request.HttpContext.Connection.RemoteIpAddress.ToString(), false, userString); //return BadRequest(); } await LogQuery(request, responseString, responseMessage); //Передаем список доступных городов с ID (для дальнейшей сверки) SendStatistic("Default", DateTime.Now, "Statistic", Request.HttpContext.Connection.RemoteIpAddress.ToString(), true, userString); //return View(statfake); } foreach (RabbitModels.RabbitStatistic item in result) { if (item.Action == "Index") { bool found = false; foreach (VisitingData dataItem in data) { if (item.User == dataItem.user) { dataItem.visits++; found = true; } } if (!found) { VisitingData dataItem = new VisitingData() { user = item.User, visits = 1 }; data.Add(dataItem); } } } var chartData = new object[data.Count + 1]; chartData[0] = new object[] { "user", "visits" }; int j = 0; foreach (var i in data) { j++; chartData[j] = new object[] { i.user, i.visits }; } //return new JsonResult(chartData); return(data); }