private void ReleaseDataPointsByXValueRanges()
 {
     if (this._aquiredStackingKey == StackedColumnSeriesPresenter.GetSeriesKey(this.Series as StackedColumnSeries))
     {
         return;
     }
     if (this._dataPointsByXValueRanges != null)
     {
         this.ChartArea.SingletonRegistry.ReleaseSingleton((object)this._aquiredStackingKey);
     }
     this._dataPointsByXValueRanges = (Dictionary <object, Range <IComparable> >)null;
 }
Exemple #2
0
        internal virtual Dictionary <object, List <Series> > GroupSeriesByClusters(IList <XYSeries> clusterSeries)
        {
            Dictionary <object, List <Series> > clusterGroups = new Dictionary <object, List <Series> >();

            foreach (ColumnSeries columnSeries1 in (IEnumerable <XYSeries>)clusterSeries)
            {
                List <Series> list = new List <Series>();
                if (columnSeries1.ClusterGroupKey == null)
                {
                    list.Add((Series)columnSeries1);
                    clusterGroups.Add((object)new Tuple <ColumnSeries>(columnSeries1), list);
                }
                else if (!clusterGroups.ContainsKey(columnSeries1.ClusterGroupKey))
                {
                    foreach (ColumnSeries columnSeries2 in (IEnumerable <XYSeries>)clusterSeries)
                    {
                        if (ValueHelper.AreEqual(columnSeries2.ClusterGroupKey, columnSeries1.ClusterGroupKey))
                        {
                            list.Add((Series)columnSeries2);
                        }
                    }
                    clusterGroups.Add(columnSeries1.ClusterGroupKey, list);
                }
            }
            IList <StackedColumnSeries> list1 = (IList <StackedColumnSeries>)Enumerable.ToList <StackedColumnSeries>(Enumerable.OfType <StackedColumnSeries>((IEnumerable)Enumerable.Where <XYSeries>((IEnumerable <XYSeries>) this.XYChartArea.Series, (Func <XYSeries, bool>)(s => s.Visibility == Visibility.Visible))));

            foreach (List <Series> list2 in clusterGroups.Values)
            {
                List <Series> groupSeries = list2;
                EnumerableFunctions.ForEach <Series>(Enumerable.Where <Series>((IEnumerable <Series>)groupSeries.ToArray(), (Func <Series, bool>)(s => s is StackedColumnSeries)), (Action <Series>)(s => groupSeries.Remove(s)));
            }
            EnumerableFunctions.ForEach <KeyValuePair <object, List <Series> > >(Enumerable.Where <KeyValuePair <object, List <Series> > >((IEnumerable <KeyValuePair <object, List <Series> > >)Enumerable.ToArray <KeyValuePair <object, List <Series> > >((IEnumerable <KeyValuePair <object, List <Series> > >)clusterGroups), (Func <KeyValuePair <object, List <Series> >, bool>)(item => item.Value.Count == 0)), (Action <KeyValuePair <object, List <Series> > >)(item => clusterGroups.Remove(item.Key)));
            foreach (StackedColumnSeries series1 in (IEnumerable <StackedColumnSeries>)list1)
            {
                List <Series> list2 = new List <Series>();
                Tuple <DataValueType, DataValueType, bool, object> seriesKey = StackedColumnSeriesPresenter.GetSeriesKey(series1);
                if (!clusterGroups.ContainsKey((object)seriesKey) && seriesKey.Item1 != DataValueType.Auto)
                {
                    foreach (StackedColumnSeries series2 in (IEnumerable <StackedColumnSeries>)list1)
                    {
                        if (StackedColumnSeriesPresenter.GetSeriesKey(series2).Equals((object)seriesKey))
                        {
                            list2.Add((Series)series2);
                        }
                    }
                    clusterGroups.Add((object)seriesKey, list2);
                }
            }
            return(clusterGroups);
        }