string GetTimeGrain() { var timegrain = SelectedTimeGrain.Value; if (timegrain == "Automatic") { var vals = TimeGrains.Where(x => x != timegrain).Select(x => { x = x.Substring(1 + (x[1] == 'T' ? 1 : 0)); return(x == "1M" ? new TimeSpan(0, 1, 0) : x == "5M" ? new TimeSpan(0, 5, 0) : x == "15M" ? new TimeSpan(0, 15, 0) : x == "30M" ? new TimeSpan(0, 30, 0) : x == "1H" ? new TimeSpan(1, 0, 0) : x == "6H" ? new TimeSpan(6, 0, 0) : x == "12H" ? new TimeSpan(12, 0, 0) : x == "1D" ? new TimeSpan(24, 0, 0) : default(TimeSpan)); }); var durationSecs = (End.Value - Start.Value).Ticks; var points = vals.Select(x => durationSecs / x.Ticks).ToList(); var maxpoints = 500; for (var i = 0; i < points.Count; i++) { if (points[i] < maxpoints) { timegrain = TimeGrains.ElementAt(i + 1); break; } } } return(timegrain); }
public async void SelectMetric(SelectionChangedEventArgs args) { if (args.AddedItems.Count == 1) { var metric = args.AddedItems[0] as Metric; MetricDimensions.Clear(); if (metric.Dimensions != null && metric.Dimensions.Count() > 0) { LoadGraphEnabled.Value = false; foreach (var d in metric.Dimensions) { MetricDimensions.Add(d); } SelectedMetricDimension.Value = metric.Dimensions.First(); MetricDimensionsSelectorEnabled.Value = metric.Dimensions.Count() > 1; var timegrains = new [] { "Automatic" }.Concat(metric.MetricAvailabilities.Select(x => x.TimeGrain).ToList()); TimeGrains.Clear(); foreach (var tg in timegrains) { TimeGrains.Add(tg); } SelectedTimeGrain.Value = timegrains.First(); TimeGrainsSelectorEnabled.Value = timegrains.Count() > 1; } else { LoadGraphEnabled.Value = true; var md = new Metric.MetricDimension { LocalizedValue = "No dimensions supported" }; MetricDimensions.Add(md); SelectedMetricDimension.Value = md; MetricDimensionsSelectorEnabled.Value = false; } } }