Beispiel #1
0
        public IActionResult GetTop([FromQuery] int top = 10)
        {
            xServer.Stats.IncrementPublicRequest();
            TopResult topResult = xServer.GetTopXServers(top);

            return(Json(topResult));
        }
Beispiel #2
0
        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);
        }