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));
}
}