private void UpdateAggregationEntries()
        {
            if (!_fileRecordInfoList.Any())
            {
                return;
            }

            AggregationEntries.Clear();

            _supressCollectionChanged = true;
            foreach (var recordInfo in _fileRecordInfoList)
            {
                var localSession = _recordManager.LoadData(recordInfo.FullPath);
                var frametimes   = localSession.Runs.SelectMany(r => r.CaptureData.MsBetweenPresents).ToList();

                var metricAnalysis = _statisticProvider
                                     .GetMetricAnalysis(frametimes, SelectedSecondMetric.ConvertToString(),
                                                        SelectedThirdMetric.ConvertToString());

                AggregationEntries.Add(new AggregationEntry()
                {
                    GameName          = recordInfo.GameName,
                    CreationDate      = recordInfo.CreationDate,
                    CreationTime      = recordInfo.CreationTime,
                    AverageValue      = metricAnalysis.Average,
                    SecondMetricValue = metricAnalysis.Second,
                    ThirdMetricValue  = metricAnalysis.Third,
                    MetricAnalysis    = metricAnalysis
                });
            }
            _supressCollectionChanged = false;
            OnAggregationEntriesChanged();
        }
Пример #2
0
        private void AddAggregationEntry(IFileRecordInfo recordInfo, Session session)
        {
            if (recordInfo != null)
            {
                if (_fileRecordInfoList.Any())
                {
                    if (!_fileRecordInfoList.All(info => info.ProcessName == recordInfo.ProcessName))
                    {
                        return;
                    }
                }

                _fileRecordInfoList.Add(recordInfo);
            }
            else
            {
                return;
            }


            List <double> frametimes = session?.FrameTimes;

            if (session == null)
            {
                var localSession = RecordManager.LoadData(recordInfo.FullPath);
                frametimes = localSession?.FrameTimes;
            }

            var metricAnalysis = _statisticProvider
                                 .GetMetricAnalysis(frametimes, SelectedSecondMetric.ConvertToString(),
                                                    SelectedThirdMetric.ConvertToString());

            AggregationEntries.Add(new AggregationEntry()
            {
                GameName          = recordInfo.GameName,
                CreationDate      = recordInfo.CreationDate,
                CreationTime      = recordInfo.CreationTime,
                AverageValue      = metricAnalysis.Average,
                SecondMetricValue = metricAnalysis.Second,
                ThirdMetricValue  = metricAnalysis.Third,
                MetricAnalysis    = metricAnalysis,
                FileRecordInfo    = recordInfo
            });
        }
        private void AddAggregationEntry(IFileRecordInfo recordInfo, ISession session)
        {
            if (recordInfo == null)
            {
                return;
            }

            if (_fileRecordInfoList.Any())
            {
                if (!_fileRecordInfoList.All(info => info.ProcessName == recordInfo.ProcessName))
                {
                    return;
                }
            }

            _fileRecordInfoList.Add(recordInfo);

            session = session ?? _recordManager.LoadData(recordInfo.FullPath);
            var frametimes = session.Runs.SelectMany(r => r.CaptureData.MsBetweenPresents).ToList();

            var metricAnalysis = _statisticProvider
                                 .GetMetricAnalysis(frametimes, SelectedSecondMetric.ConvertToString(),
                                                    SelectedThirdMetric.ConvertToString());

            AggregationEntries.Add(new AggregationEntry()
            {
                GameName          = recordInfo.GameName,
                CreationDate      = recordInfo.CreationDate,
                CreationTime      = recordInfo.CreationTime,
                AverageValue      = metricAnalysis.Average,
                SecondMetricValue = metricAnalysis.Second,
                ThirdMetricValue  = metricAnalysis.Third,
                MetricAnalysis    = metricAnalysis,
                FileRecordInfo    = recordInfo
            });
        }