public IActionResult GetTop([FromQuery] int top = 10) { xServer.Stats.IncrementPublicRequest(); TopResult topResult = xServer.GetTopXServers(top); return(Json(topResult)); }
public TopResult GetTopXServers(int top) { TopResult result = new TopResult(); using (X42DbContext dbContext = new X42DbContext(ConnectionString)) { IQueryable <ServerNodeData> servers = dbContext.ServerNodes.Where(n => n.Active).OrderByDescending(u => u.Priority); if (top > 0) { servers = servers.Take(top); } if (servers.Count() > 0) { servers.ToList().ForEach( server => result.XServers.Add( new XServerConnectionInfo() { Name = server.ProfileName, NetworkProtocol = server.NetworkProtocol, NetworkAddress = server.NetworkAddress, NetworkPort = server.NetworkPort, Priotiry = server.Priority, Tier = server.Tier } )); } } return(result); }