private StepTiming CreateStepTiming(SerializableStepTiming sourceStepTiming) { // ensure parentId ProfilingSession.ProfilingSessionContainer.CurrentSessionStepId = sourceStepTiming.ParentId; var stepTiming = new StepTiming(this, sourceStepTiming.Name) { DurationMilliseconds = sourceStepTiming.DurationMilliseconds, ExecuteType = sourceStepTiming.ExecuteType, StartMilliseconds = sourceStepTiming.StartMilliseconds, Sort = sourceStepTiming.Sort, Tags = sourceStepTiming.Tags == null ? null : new TagCollection(sourceStepTiming.Tags) }; // fix Id if (CustomTimings != null) { for (var i = 0; i < CustomTimings.Count; ++i) { if (CustomTimings[i].ParentId == sourceStepTiming.Id) { CustomTimings[i].ParentId = stepTiming.Id; } } } for (var i = 0; i < StepTimings.Count; ++i) { if (StepTimings[i].ParentId == sourceStepTiming.Id) { StepTimings[i].ParentId = stepTiming.Id; } } sourceStepTiming.Id = stepTiming.Id; ProfilingSession.ProfilingSessionContainer.CurrentSessionStepId = null; return stepTiming; }
internal SerializableStepTiming ParseStepFields(JsonObject stepJson) { var step = new SerializableStepTiming(); step.DurationMilliseconds = ParseInt64(stepJson["duration"]).GetValueOrDefault(); step.ExecuteType = stepJson["executeType"]; step.Id = ParseGuid(stepJson["id"]); step.MachineName = stepJson["machine"]; step.StartMilliseconds = ParseInt64(stepJson["start"]).GetValueOrDefault(); step.Sort = ParseInt64(stepJson["sort"]).GetValueOrDefault(step.StartMilliseconds); step.Started = ParseDateTime(stepJson["started"]); step.Name = stepJson["name"]; if (stepJson.ContainsKey("tags")) step.Tags = ParseTags(stepJson.Child("tags")); step.Type = stepJson["type"]; step.ParentId = ParseGuid(stepJson["parentId"]); return step; }
private void AddSelfAndChildrenStepTimings( List<SerializableStepTiming> sortedList, SerializableStepTiming stepTiming, List<SerializableStepTiming> stepTimings) { sortedList.Add(stepTiming); for (var i = 0; i < stepTimings.Count; ++i) { if (stepTimings[i].ParentId == stepTiming.Id) { AddSelfAndChildrenStepTimings(sortedList, stepTimings[i], stepTimings); } } }