private static void PopulateResponseSummary(ListControl lstTarget, HyperNodeMessageResponse response) { if (lstTarget == null) { return; } if (response == null) { lstTarget.DataSource = null; return; } lstTarget.DataSource = new[] { "Task ID: " + response.TaskId, "Responding Node Name:" + response.RespondingNodeName, "Total Run Time: " + response.TotalRunTime, "Node Action: " + response.NodeAction, "Node Action Reason: " + response.NodeActionReason, "Process Status Flags: " + response.ProcessStatusFlags, "Response XML: " + response.CommandResponseString, "Task Trace Count: " + response.TaskTrace.Count }; }
private static void PopulateTaskTrace(TreeView tvwTaskTrace, HyperNodeMessageResponse response) { if (tvwTaskTrace == null) { return; } if (response == null) { tvwTaskTrace.Nodes.Clear(); return; } tvwTaskTrace.Nodes.AddRange( new[] { new TreeNode( response.RespondingNodeName, response.TaskTrace.Select(i => new TreeNode(FormatActivityItem(i), string.IsNullOrWhiteSpace(i.EventDetail) ? new TreeNode[0] : new [] { new TreeNode(i.EventDetail) })).ToArray() ) { Tag = response } } ); }
public ReadOnlyHyperNodeResponseInfo(HyperNodeMessageResponse response) { TaskId = response.TaskId; RespondingNodeName = response.RespondingNodeName; TotalRunTime = response.TotalRunTime; NodeAction = response.NodeAction; NodeActionReason = response.NodeActionReason; ProcessStatusFlags = response.ProcessStatusFlags; CommandResponseString = response.CommandResponseString; TaskTrace = new ReadOnlyCollection <HyperNodeActivityItem>( response.TaskTrace.Select( t => new HyperNodeActivityItem(t) ).ToList() ); }
/// <summary> /// This method should only ever be called once at the very end of a HyperNode's processing of a message after all of the child threads have completed. /// </summary> /// <param name="response">The complete <see cref="HyperNodeMessageResponse"/> object to report.</param> public void TrackTaskComplete(HyperNodeMessageResponse response) { Track("Task complete.", null, response); try { _eventHandler.OnTaskCompleted( new TaskCompletedEventArgs( this, _taskContext, new ReadOnlyHyperNodeResponseInfo(response) ) ); } catch (Exception ex) { TrackException(ex); } }
public ResponseTaskTraceMonitor(HyperNodeMessageResponse target) { Name = nameof(ResponseTaskTraceMonitor); _target = target; }