Beispiel #1
0
        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));
            }
        }
Beispiel #2
0
        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);
        }