private object GetStatus(AdaptiveStateMachine <SerialilzableWebRequest, HttpStatusCode> stateMachine)
        {
            var status = new List <StatusModel>();

            foreach (var l in stateMachine.EndpointNamesToUris.Keys.OrderBy(i => i))
            {
                DateTimeOffset last = DateTimeOffset.MinValue;
                stateMachine.LastContactByNode.TryGetValue(l, out last);
                var delay    = l != stateMachine.Paxos.Self ? DateTimeOffset.Now - last : TimeSpan.Zero;
                var isLeader = stateMachine.Paxos.LeaderHint == l;
                var config   = stateMachine.Paxos.ConfigurationHint;
                var active   = !config.Learners.Except(config.Proposers).Contains(l);
                var color    = ChooseColor(active, isLeader, delay);
                status.Add(new StatusModel {
                    Location = l, LastContact = delay, Color = color
                });
            }
            return(status);
        }
 private object GetStatus(AdaptiveStateMachine<SerialilzableWebRequest, HttpStatusCode> stateMachine)
 {
     var status = new List<StatusModel>();
     foreach (var l in stateMachine.EndpointNamesToUris.Keys.OrderBy(i => i))
     {
         DateTimeOffset last = DateTimeOffset.MinValue;
         stateMachine.LastContactByNode.TryGetValue(l, out last);
         var delay = l != stateMachine.Paxos.Self ? DateTimeOffset.Now - last : TimeSpan.Zero;
         var isLeader = stateMachine.Paxos.LeaderHint == l;
         var config = stateMachine.Paxos.ConfigurationHint;
         var active = !config.Learners.Except(config.Proposers).Contains(l);
         var color = ChooseColor(active, isLeader, delay);
         status.Add(new StatusModel { Location = l, LastContact = delay, Color = color });
     }
     return status;
 }