Beispiel #1
0
        public IEnumerable <IDataPoint <TItem> > GenerateDataPoints(IEnumerable <TItem> items)
        {
            IEnumerable <DataPoint <TItem> > data;

            if (YValue != null)
            {
                data = items.Select(e => new DataPoint <TItem>
                {
                    X     = XValue.Invoke(e),
                    Y     = YValue.Invoke(e),
                    Items = new List <TItem> {
                        e
                    },
                    FillColor = GetPointColor(e)
                });
            }
            else if (YAggregate != null)
            {
                data = items.GroupBy(XValue)
                       .Select(d => new DataPoint <TItem>
                {
                    X         = d.Key,
                    Y         = YAggregate.Invoke(d),
                    Items     = d.ToList(),
                    FillColor = GetPointColor(d)
                });
            }
            else
            {
                return(new List <IDataPoint <TItem> >());
            }


            if (OrderBy != null)
            {
                data = data.OrderBy(OrderBy);
            }
            else if (OrderByDescending != null)
            {
                data = data.OrderByDescending(OrderByDescending);
            }

            return(UpdateDataPoints(data, DataPointMutator));
        }