internal SerializableCustomTiming ParseCustomFields(JsonObject customJson) { var custom = new SerializableCustomTiming(); custom.DurationMilliseconds = ParseInt64(customJson["duration"]).GetValueOrDefault(); custom.ExecuteType = customJson["executeType"]; custom.Id = ParseGuid(customJson["id"]); custom.MachineName = customJson["machine"]; custom.StartMilliseconds = ParseInt64(customJson["start"]).GetValueOrDefault(); custom.Sort = ParseInt64(customJson["sort"]).GetValueOrDefault(custom.StartMilliseconds); custom.Started = ParseDateTime(customJson["started"]); custom.Name = customJson["name"]; if (customJson.ContainsKey("tags")) custom.Tags = ParseTags(customJson.Child("tags")); custom.Type = customJson["type"]; custom.ParentId = ParseGuid(customJson["parentId"]); custom.InputData = customJson["inputData"]; custom.InputSize = ParseInt(customJson["inputSize"]); custom.OutputSize = ParseInt(customJson["outputSize"]).GetValueOrDefault(); custom.OutputStartMilliseconds = ParseInt64(customJson["outputStartMilliseconds"]).GetValueOrDefault(); return custom; }
private CustomTiming CreateCustomTiming(SerializableCustomTiming sourceCustomTiming) { // ensure parentId ProfilingSession.ProfilingSessionContainer.CurrentSessionStepId = sourceCustomTiming.ParentId; var customTiming = new CustomTiming(this, sourceCustomTiming.Type, sourceCustomTiming.Name) { DurationMilliseconds = sourceCustomTiming.DurationMilliseconds, ExecuteType = sourceCustomTiming.ExecuteType, StartMilliseconds = sourceCustomTiming.StartMilliseconds, Sort = sourceCustomTiming.Sort, Tags = sourceCustomTiming.Tags == null ? null : new TagCollection(sourceCustomTiming.Tags), InputData = sourceCustomTiming.InputData, InputSize = sourceCustomTiming.InputSize, OutputSize = sourceCustomTiming.OutputSize, OutputStartMilliseconds = sourceCustomTiming.OutputStartMilliseconds }; ProfilingSession.ProfilingSessionContainer.CurrentSessionStepId = null; return customTiming; }