Beispiel #1
0
        private void Metric_PropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            if (_disposed)
            {
                (sender as iMetric).PropertyChanged -= Metric_PropertyChanged;
                return;
            }

            if (e.PropertyName != "nValue")
            {
                return;
            }

            iMetric _metric = (iMetric)sender;

            if (_data == null || !_data.ContainsKey(_metric))
            {
                _metric.PropertyChanged -= Metric_PropertyChanged;
                return;
            }

            DateTime _now = DateTime.Now;

            try
            {
                ObservableCollection <MetricRecord> _mData = _data[_metric];

                foreach (MetricRecord _record in _mData.Where(r => (_now - r.Recorded).TotalSeconds > Duration).ToArray())
                {
                    _mData.Remove(_record);
                }

                _mData.Add(new MetricRecord(_metric.nValue, _now));
            }
            catch (Exception exception)
            {
                _metric.PropertyChanged -= Metric_PropertyChanged;
                BacktraceLogger.Log(new Backtrace.Model.BacktraceReport(exception));
            }
        }
 private void BindMetrics(iMetric[] metrics)
 {
     MetricItems = metrics;
     Metrics = new ObservableCollection<iMetric>();
 }