Exemple #1
0
            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);
            }
Exemple #2
0
        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
            });
        }
Exemple #3
0
            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);
            }
Exemple #4
0
                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);
                }