ChessServer.Server.PulseChecker C# (CSharp) Method

PulseChecker() private static method

private static PulseChecker ( object source, System.Timers.ElapsedEventArgs e ) : void
source object
e System.Timers.ElapsedEventArgs
return void
        private static void PulseChecker(object source, ElapsedEventArgs e)
        {
            const int MAX_LOSTBEATS = 10;
            foreach (var u in LostBeats)
            {
                LostBeats[u.Key]++;
            }
            foreach (var elementGame in Games)
            {
                if (elementGame.Value.PlayerWhite != null
                    && LostBeats.GetOrAdd(elementGame.Value.PlayerWhite.Name, name => 0) >= MAX_LOSTBEATS)
                {
                    if (elementGame.Value.PlayerBlack != null)
                        Messages.GetOrAdd(elementGame.Value.PlayerBlack.Name, i => new List<Message>())
                            .Add(MessageSender.OpponentLostConnection());
                    elementGame.Value.Act = Act.AbandonedByWhite;
                }
                if (elementGame.Value.PlayerBlack != null
                    && LostBeats.GetOrAdd(elementGame.Value.PlayerBlack.Name, name => 0) >= MAX_LOSTBEATS)
                {
                    if (elementGame.Value.PlayerWhite != null)
                        Messages.GetOrAdd(elementGame.Value.PlayerWhite.Name, i => new List<Message>())
                            .Add(MessageSender.OpponentLostConnection());
                    elementGame.Value.Act = Act.AbandonedByBlack;
                }
            }
        }