ChessServer.Server.MatchMaking C# (CSharp) Method

MatchMaking() private static method

private static MatchMaking ( object source, System.Timers.ElapsedEventArgs e ) : void
source object
e System.Timers.ElapsedEventArgs
return void
        private static void MatchMaking(object source, ElapsedEventArgs e)
        {
            if (PlayersQue.Count < 2) return;
            var players = PlayersQue.Values.ToArray();
            for (var i = 0; i < PlayersQue.Count/2; i++)
            {
                var game = new GameObject(players[i*2], players[i*2 + 1]) {Act = Act.InProgress};
                if (!Games.TryAdd(game.Id, game)) continue;
                User dummy;
                PlayersQue.TryRemove(players[i*2].Name, out dummy);
                PlayersQue.TryRemove(players[i*2 + 1].Name, out dummy);
                Messages.GetOrAdd(players[i * 2].Name, k => new List<Message>()).Add(MessageSender.GameIsReady(game.Id));
                Messages.GetOrAdd(players[i * 2 + 1].Name, k => new List<Message>()).Add(MessageSender.GameIsReady(game.Id));
            }
        }