public ServerInfoModel GetServerInfo()
        {
            var queryConnection = new QueryConnection
            {
                Host = Settings.CsServerIp,
                Port = Settings.CsServerPort
            };

            try
            {
                queryConnection.Connect();
                var info = queryConnection.GetInfo();

                return(new ServerInfoModel
                {
                    IsAlive = true,
                    PlayersCount = info.Players,
                    Map = info.Map
                });
            }
            catch (Exception e)
            {
                return(new ServerInfoModel
                {
                    IsAlive = false,
                    PlayersCount = 0
                });
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Builds all queries accumulated by connecting single queries.
        /// </summary>
        /// <param name="query">The query to be used.</param>
        /// <returns>The expression representing the whole lambda expressions.</returns>
        private Expression BuildQueries(List <Query <TEntity> > query)
        {
            Expression      body       = null;
            QueryConnection connection = QueryConnection.None;

            foreach (var q in query)
            {
                if (q.Type == QueryType.QueryGroup)
                {
                    switch (connection)
                    {
                    // This is when i == 0
                    case QueryConnection.None:
                        body = this.BuildQueries(q.Children);
                        break;

                    case QueryConnection.AndAlso:
                        body = Expression.AndAlso(body, this.BuildQueries(q.Children));
                        break;

                    case QueryConnection.OrElse:
                        body = Expression.OrElse(body, this.BuildQueries(q.Children));
                        break;
                    }
                }
                else if (q.Type == QueryType.QueryStatement)
                {
                    switch (connection)
                    {
                    // This is when i == 0
                    case QueryConnection.None:
                        body = q.BuildQuery();
                        break;

                    case QueryConnection.AndAlso:
                        body = Expression.AndAlso(body, q.BuildQuery());
                        break;

                    case QueryConnection.OrElse:
                        body = Expression.OrElse(body, q.BuildQuery());
                        break;
                    }
                }

                connection = q.Connection;
            }

            return(body);
        }
        public void TestQuery()
        {
            IQueryConnection conn = new QueryConnection();

            conn.Host = "192.168.100.241";
            conn.Port = 27015;

            conn.Connect();
            var info = conn.GetInfo();

            //var players = conn.GetPlayers();
            //var rules = conn.GetRules();
            //conn.Disconnect();
            Console.WriteLine(info.ToString());
        }
Ejemplo n.º 4
0
        public List <GameServer> GetServers()
        {
            List <GameServer> servers = new List <GameServer>();

            foreach (var server in Servers)
            {
                IQueryConnection query = new QueryConnection();
                query.Host = server.IP;
                query.Port = server.QueryPort;
                query.Connect();
                var info = query.GetInfo();
                server.Status = new GameServerStatus(info.Name, info.Players, info.MaxPlayers, info.Map, info.HasPort ? info.Port.Value : default(int));
                servers.Add(server);
            }

            return(servers);
        }
Ejemplo n.º 5
0
        static void Main(string[] args)
        {
            IQueryConnection conn = new QueryConnection();

            conn.Host = "127.0.0.1";
            conn.Port = 27015;

            conn.Connect();

            var info = conn.GetInfo();

            Console.WriteLine($"Server info: {info.ToString()}");
            var players = conn.GetPlayers();

            Console.WriteLine($"Current players: {string.Join("; ", players.Players.Select(p => p.Name))}");
            var rules = conn.GetRules();

            Console.WriteLine($"Rules: {string.Join("; ", rules.Rules.Select(r => $"{r.Key}: {r.Value}"))}");
        }
        public void MultipleQueriesTest()
        {
            IQueryConnection conn = new QueryConnection();

            // Exampleserver: ARK VALGUERO Server
            conn.Host = "89.163.146.91";
            conn.Port = 27023;

            conn.Connect();
            var players1 = conn.GetPlayers();
            var players2 = conn.GetPlayers();

            //conn.Disconnect();
            // Console.WriteLine(players1.ToString());
            // Console.WriteLine(players2.ToString());
            // Console.WriteLine(players3.ToString());
            // Console.WriteLine(players4.ToString());
            // Console.WriteLine(players5.ToString());
        }
Ejemplo n.º 7
0
 /// <summary>
 /// Sets the query connection.
 /// </summary>
 /// <param name="connection">The query connection to be set.</param>
 public void SetQueryConnection(QueryConnection connection)
 {
     this.Connection = connection;
 }