public static void ShowRankingPage(ushort thisSeason, int pageIndex, Client.GameState client) { ArenaList list = new ArenaList(pageIndex); list.ID = Enums.ArenaIDs.ShowPlayerRankList; list.PageNumber = (ushort)pageIndex; list.Subtype = thisSeason; if (list.Subtype == 0) { var Array = ArenaStatisticsList; if (Array.Count > (((pageIndex) * 10) - 10)) { list.Players.Clear(); for (int i = ((pageIndex) * 10 - 10); i < ((pageIndex) * 10 - 10) + 10; i++) { if (i < Array.Count) { if (Array[i].Rank > 0) { list.Players.Add(Array[i]); } } } } } else { if (YesterdayArenaStatisticsList == null || YesterdayArenaStatisticsList.Count == 0) YesterdayArenaStatisticsList = YesterdayArenaStatistics.Values.ToList(); var Array = YesterdayArenaStatisticsList; if (Array.Count > (((pageIndex) * 10) - 10)) { list.Players.Clear(); for (int i = ((pageIndex) * 10 - 10); i < ((pageIndex) * 10 - 10) + 10; i++) { if (i < Array.Count) { if (Array[i].LastSeasonRank > 0) { list.Players.Add(Array[i]); } } } } } client.Send(list.BuildPacket()); }
public async Task <IActionResult> Index([FromRoute] int id = 1) { string userString = HttpContext.Session.GetString("Login"); userString = userString != null ? userString : ""; List <Arena> result = new List <Arena>(); int count = 0; 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(URLArenaService); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); string requestString = "api/arenas/page/" + id; HttpResponseMessage response = await client.GetAsync(requestString); request = "SERVICE: ArenaService \r\nGET: " + URLArenaService + "/" + requestString + "\r\n" + client.DefaultRequestHeaders.ToString(); string responseString = response.Headers.ToString() + "\nStatus: " + response.StatusCode.ToString(); if (response.IsSuccessStatusCode) { responseMessage = await response.Content.ReadAsByteArrayAsync(); var arenas = await response.Content.ReadAsStringAsync(); result = JsonConvert.DeserializeObject <List <Arena> >(arenas); } else { responseMessage = Encoding.UTF8.GetBytes(response.ReasonPhrase); SendStatistic("Arena", DateTime.Now, "Index", Request.HttpContext.Connection.RemoteIpAddress.ToString(), false, userString); return(Error()); } await LogQuery(request, responseString, responseMessage); // // ПОЛУЧАЕМ КОЛ-ВО СУЩНОСТЕЙ В БД МИКРОСЕРВИСА, ЧТОБЫ УЗНАТЬ, СКОЛЬКО СТРАНИЦ РИСОВАТЬ // client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); string requestStringCount = "api/arenas/count"; HttpResponseMessage responseStringsCount = await client.GetAsync(requestStringCount); request = "SERVICE: ArenaService \r\nGET: " + URLArenaService + "/" + requestString + "\r\n" + client.DefaultRequestHeaders.ToString(); responseString = responseStringsCount.Headers.ToString() + "\nStatus: " + responseStringsCount.StatusCode.ToString(); if (responseStringsCount.IsSuccessStatusCode) { responseMessage = await responseStringsCount.Content.ReadAsByteArrayAsync(); var countStringsContent = await responseStringsCount.Content.ReadAsStringAsync(); count = JsonConvert.DeserializeObject <int>(countStringsContent); } else { responseMessage = Encoding.UTF8.GetBytes(responseStringsCount.ReasonPhrase); SendStatistic("Arena", DateTime.Now, "Index", Request.HttpContext.Connection.RemoteIpAddress.ToString(), false, userString); return(Error()); } ArenaList resultQuery = new ArenaList() { arenas = result, countArenas = count }; await LogQuery(request, responseString, responseMessage); SendStatistic("Arena", DateTime.Now, "Index", Request.HttpContext.Connection.RemoteIpAddress.ToString(), true, userString); return(View(resultQuery)); } }