private void CreateChart()
 {
     if (_choosenData.Equals("Education"))
     {
         var dataAmount = from x in people
                          group x by x.Education
                      into g
                          select new ChartData()
                          {
                              ChoosenData = g.Key,
                              Amount = (from x in g select x).Count()
                          };
         chartBindingSource.DataSource = dataAmount.ToList();
     }
     else
     {
         var dataAmount = from x in people
                          group x by x.HasJob
                      into g
                          select new ChartData()
                          {
                              ChoosenData = g.Key.ToString(),
                              Amount = (from x in g select x).Count()
                          };
         chartBindingSource.DataSource = dataAmount.ToList();
     }
     ChartBasis.DataBind();
 }
Example #2
0
        /// <summary>
        /// Populate a dataseries with data from a NumericTimeDataSeries
        /// </summary>
        /// <param name="timeDataSeries">NumericTimeDataSeries containing data to add to chart data series</param>
        /// <param name="chartDataSeries">Dataseries to add data to</param>
        /// <param name="chartType">Chart basis (time or distance)</param>
        /// <returns>Populated dataseries</returns>
        private static ChartDataSeries PopulateDataSeries(INumericTimeDataSeries timeDataSeries, ChartDataSeries chartDataSeries, ChartBasis chartType, IActivity activity)
        {
            switch (chartType)
            {
            case ChartBasis.Gear_Distance:
                ActivityInfo       info  = ActivityInfoCache.Instance.GetInfo(activity);
                IDistanceDataTrack track = GearUtils.GetDistanceTrack(activity);
                float test = 0;

                foreach (ITimeValueEntry <float> entry in timeDataSeries)
                {
                    DateTime time     = track.EntryDateTime(entry);
                    float    distance = track.GetInterpolatedValue(time).Value;
                    distance = (float)Length.Convert(distance, Length.Units.Meter, activity.Category.DistanceUnits);
                    PointF point = new PointF(distance, entry.Value);
                    if (!chartDataSeries.Points.ContainsKey(point.X))
                    {
                        chartDataSeries.Points.Add(point.X, point);
                    }
                    else if (test != point.X)
                    {
                        test = point.X;
                    }
                }

                break;

            case ChartBasis.Gear_Time:
                foreach (ITimeValueEntry <float> entry in timeDataSeries)
                {
                    PointF point = new PointF(entry.ElapsedSeconds, entry.Value);
                    chartDataSeries.Points.Add(point.X, point);
                }

                break;

            default:

                break;
            }

            return(chartDataSeries);
        }