Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 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);
 }
Exemplo n.º 3
0
        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);
        }