internal RequestJobTimeTrackerXML GetDiagnosticInfo(RequestStatisticsDiagnosticArgument arguments) { bool showTimeSlots = arguments.HasArgument("showtimeslots"); this.RefreshDurations(); RequestJobTimeTrackerXML requestJobTimeTrackerXML = new RequestJobTimeTrackerXML(); requestJobTimeTrackerXML.CurrentState = this.CurrentState.ToString(); requestJobTimeTrackerXML.LastStateChangeTimeStamp = this.stateChangeTimestamp.ToString("O"); for (RequestJobTimestamp requestJobTimestamp = RequestJobTimestamp.None; requestJobTimestamp < RequestJobTimestamp.MaxTimestamp; requestJobTimestamp++) { DateTime?timestamp = this.GetTimestamp(requestJobTimestamp); if (timestamp != null) { requestJobTimeTrackerXML.AddTimestamp(requestJobTimestamp, timestamp.Value); } } foreach (RequestJobStateNode treeRoot in RequestJobStateNode.RootStates) { RequestJobTimeTrackerXML.DurationRec durationRec = this.DumpDurationTreeForDiagnostics(treeRoot, showTimeSlots); if (durationRec != null && durationRec.Duration != TimeSpan.Zero.ToString()) { if (requestJobTimeTrackerXML.Durations == null) { requestJobTimeTrackerXML.Durations = new List <RequestJobTimeTrackerXML.DurationRec>(); } requestJobTimeTrackerXML.Durations.Add(durationRec); } } return(requestJobTimeTrackerXML); }
public RequestJobTimeTrackerXML.DurationRec GetDurationRec(RequestState state, bool showTimeSlots = false) { RequestJobTimeTrackerXML.DurationRec durationRec = new RequestJobTimeTrackerXML.DurationRec(); durationRec.State = state.ToString(); durationRec.Duration = this.duration.ToString(); if (showTimeSlots) { durationRec.PerMinute = this.minutes.GetDiagnosticXML(); durationRec.PerHour = this.hours.GetDiagnosticXML(); durationRec.PerDay = this.days.GetDiagnosticXML(); durationRec.PerMonth = this.months.GetDiagnosticXML(); } return(durationRec); }
private RequestJobTimeTrackerXML.DurationRec DumpDurationTreeForDiagnostics(RequestJobStateNode treeRoot, bool showTimeSlots = false) { RequestJobDurationData displayDuration = this.GetDisplayDuration(treeRoot.MRState); if (displayDuration == null) { return(null); } RequestJobTimeTrackerXML.DurationRec durationRec = displayDuration.GetDurationRec(treeRoot.MRState, showTimeSlots); foreach (RequestJobStateNode treeRoot2 in treeRoot.Children) { RequestJobTimeTrackerXML.DurationRec durationRec2 = this.DumpDurationTreeForDiagnostics(treeRoot2, showTimeSlots); if (durationRec2 != null && durationRec2.Duration != TimeSpan.Zero.ToString()) { if (durationRec.ChildNodes == null) { durationRec.ChildNodes = new List <RequestJobTimeTrackerXML.DurationRec>(); } durationRec.ChildNodes.Add(durationRec2); } } return(durationRec); }