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