private static DurationInfo FindMaxDurationInfoFromStats(SessionStatistics stats, bool isArchive) { string str = isArchive ? "_Archive" : string.Empty; DurationInfo durationInfo = new DurationInfo { Name = string.Empty, Duration = TimeSpan.Zero }; if (stats != null) { if (stats.SourceProviderInfo.Durations.Count > 0) { DurationInfo durationInfo2 = stats.SourceProviderInfo.Durations[0]; durationInfo.Name = "SourceProvider_" + durationInfo2.Name + str; durationInfo.Duration = durationInfo2.Duration; } if (stats.DestinationProviderInfo.Durations.Count > 0) { DurationInfo durationInfo2 = stats.DestinationProviderInfo.Durations[0]; if (durationInfo2.Duration > durationInfo.Duration) { durationInfo.Name = "DestinationProvider_" + durationInfo2.Name + str; durationInfo.Duration = durationInfo2.Duration; } } } return(durationInfo); }
public void UpdateDuration(string callName, TimeSpan duration) { DurationInfo durationInfo = this.ProviderInfo.Durations.Find((DurationInfo d) => d.Name.Equals(callName)); if (durationInfo != null) { durationInfo.Duration = durationInfo.Duration.Add(duration); return; } this.ProviderInfo.Durations.Add(new DurationInfo { Name = callName, Duration = duration }); }
private static IEnumerable <IObjectLogPropertyDefinition <SessionStatisticsLogData> > GetMaximumProviderDurations() { List <IObjectLogPropertyDefinition <SessionStatisticsLogData> > list = new List <IObjectLogPropertyDefinition <SessionStatisticsLogData> >(); Func <SessionStatisticsLogData, DurationInfo> findMaxDurationInfo = delegate(SessionStatisticsLogData logData) { DurationInfo durationInfo = SessionStatisticsLog.SessionStatisticsLogSchema.FindMaxDurationInfoFromStats(logData.SessionStatistics, false); DurationInfo durationInfo2 = SessionStatisticsLog.SessionStatisticsLogSchema.FindMaxDurationInfoFromStats(logData.ArchiveSessionStatistics, true); if (!(durationInfo.Duration > durationInfo2.Duration)) { return(durationInfo2); } return(durationInfo); }; list.Add(new ObjectLogSimplePropertyDefinition <SessionStatisticsLogData>("MaxProviderDurationMethodName", (SessionStatisticsLogData s) => findMaxDurationInfo(s).Name)); list.Add(new ObjectLogSimplePropertyDefinition <SessionStatisticsLogData>("MaxProviderDurationInMilliseconds", (SessionStatisticsLogData s) => (long)findMaxDurationInfo(s).Duration.TotalMilliseconds)); return(list); }
object IObjectLogPropertyDefinition <SessionStatisticsLogData> .GetValue(SessionStatisticsLogData logData) { List <DurationInfo> durations; if (this.isArchive) { if (logData.ArchiveSessionStatistics == null) { return(0L); } if (this.isDestinationSide) { durations = logData.ArchiveSessionStatistics.DestinationProviderInfo.Durations; } else { durations = logData.ArchiveSessionStatistics.SourceProviderInfo.Durations; } } else { if (logData.SessionStatistics == null) { return(0L); } if (this.isDestinationSide) { durations = logData.SessionStatistics.DestinationProviderInfo.Durations; } else { durations = logData.SessionStatistics.SourceProviderInfo.Durations; } } DurationInfo durationInfo = durations.Find((DurationInfo d) => d.Name.Equals(this.name)); if (durationInfo != null) { return((long)durationInfo.Duration.TotalMilliseconds); } return(0L); }