Exemple #1
0
        public void HeartbeatReceived(Heartbeat heartbeat)
        {
            Action w = () =>
            {
                if (!_hearbeatIndex.ContainsKey(heartbeat.Key))
                {
                    Heartbeats.Add(new SelectableDataItem(heartbeat.Message));
                    _hearbeatIndex.TryAdd(heartbeat.Key, heartbeat);
                }
                else
                {
                    var item = Heartbeats.FirstOrDefault(s => s.Value.ToString().Contains(heartbeat.Key));
                    item.Value = heartbeat.Message;
                    _hearbeatIndex.AddOrUpdate(heartbeat.Key, heartbeat, (n, oldValue) => heartbeat);

                    // resuscitate
                    if (heartbeat.Key == StaleModule)
                    {
                        HeartbeatLost = Visibility.Collapsed;
                    }
                }
            };

            DispatcherFacade.AddToDispatcherQueue(w);
        }