private void BuildTiming(spGetTraceAndTimingsResult trace, Timing timing)
 {
     timing.Id = trace.TimingId.GetValueOrDefault(Guid.Empty).ToString();
     timing.Name = trace.TimingName ?? UNKNOWN;
     timing.IsRoot = trace.IsRoot.GetValueOrDefault();
     timing.Start = trace.Start.GetValueOrDefault();
     timing.Duration = trace.Duration.GetValueOrDefault();
     timing.DurationWithOutChildren = trace.DurationWithOutChildren.GetValueOrDefault();
     timing.KeyValues = trace.KeyValues ?? UNKNOWN;
     timing.ManagedThreadId = trace.ManagedThreadId.GetValueOrDefault();
     timing.Order = trace.ProfiledOrder.GetValueOrDefault();
     timing.ParentId = trace.ParentTimingId.GetValueOrDefault(Guid.Empty).ToString();
 }
 private void BuildDebugAndRoot(spGetTraceAndTimingsResult trace, Debug debug)
 {
     BuildDebug(trace, debug);
     BuildTiming(trace, debug.Head);
     BuildSqlTimingCount(trace, debug.Head);
 }
 private void BuildSqlTimingCount(spGetTraceAndTimingsResult trace, Timing timing)
 {
     var sqlDuration = trace.SqlTimingDuration.GetValueOrDefault();
     var nonQueries = trace.ExecutedNonQueries.GetValueOrDefault();
     var readers = trace.ExecutedReaders.GetValueOrDefault();
     var scalars = trace.ExecutedScalers.GetValueOrDefault();
     timing.SqlTimingsCount = nonQueries + readers + scalars;
     timing.SqlTimingDuration = sqlDuration;
     timing.ExecutedNonQueries = nonQueries;
     timing.ExecutedReaders = readers;
     timing.ExecutedScalers = scalars;
 }
 private static void BuildDebug(spGetTraceAndTimingsResult trace, Debug debug)
 {
     debug.Id = trace.ProfilerId.ToString();
     debug.Code = trace.Code ?? UNKNOWN;
     debug.MachineName = trace.MachineName ?? UNKNOWN;
     debug.Method = trace.Method ?? UNKNOWN;
     debug.Name = trace.DebugName ?? UNKNOWN;
     debug.RequestUrl = trace.RequestUrl ?? UNKNOWN;
     debug.StartedUtc = trace.StartedUtc.GetValueOrDefault();
     debug.Level = trace.ProfileLevel ?? UNKNOWN;
     debug.UserName = trace.UserName ?? UNKNOWN;
     debug.TransactionId = trace.TransactionId.GetValueOrDefault(Guid.Empty).ToString();
     debug.Head = new Timing();
 }