public override void SendData() { logger.Debug($"Updating node measures"); List <Task> updateTasks = new List <Task>(); foreach (String nodeName in Session.ManagedNodes.Nodes.Keys.ToList()) { BlockchainNode node = Session.ManagedNodes.Nodes[nodeName]; updateTasks.AddRange(UpdateNodeData(node)); node.NodeState.Initialized = true; } Task.WaitAll(updateTasks.ToArray()); LastUpdateTimestamp = DateTime.Now; UpdateCount++; BlockchainNodeState[] nodesStatistics = (from n in Session.ManagedNodes.Nodes select n.Value.NodeState).ToArray(); BlockchainNodeStateMessage blockchainNodeStateMessage = new BlockchainNodeStateMessage(); blockchainNodeStateMessage.NodesStatistics = nodesStatistics; UpdateEventArgs args = new UpdateEventArgs() { MessageType = MessageType.NodeStatistics, Scope = ResourceScope.Global, CorrelationId = blockchainNodeStateMessage.CorrelationId, Data = blockchainNodeStateMessage }; OnUpdate(this, args); }
public override void OpenEnvelope() { try { BlockchainNodeStateMessage = Message.GetPayload <BlockchainNodeStateMessage>(); } catch (Exception ex) { logger.Error(ex, $"Cannot deserialize Client Registration message from agent {Agent.Address}"); return; } logger.Info($"Received node data from agent {Agent.Address}"); }