private List <ChartSeriesInfo> createExtendChart(DataTable table, ChartMappingInfo mapping, string viewType) { List <ChartSeriesInfo> chartSeries = new List <ChartSeriesInfo>(); foreach (DataRow row in table.Rows) { string xValue = row[mapping.XColumn].ToString(); string seriesName = row[mapping.SeriesColumn].ToString(); decimal yValue = 0; if (row[mapping.YColumn] != null) { yValue = decimal.Parse(row[mapping.YColumn].ToString()); } var chart = chartSeries.Find(c => c.Name == seriesName); if (chart == null) { chart = new ChartSeriesInfo(seriesName, viewType); chartSeries.Add(chart); } chart.SeriesPoints.Add(new ChartSeriesPointInfo(xValue, yValue)); } return(chartSeries); }
private List <ChartSeriesInfo> createSumChart(DataTable table, ChartMappingInfo mapping, string viewType) { List <ChartSeriesInfo> chartSeries = new List <ChartSeriesInfo>(); IEnumerable <IGrouping <string, DataRow> > result = table.Rows.Cast <DataRow>().GroupBy <DataRow, string>(dr => dr[mapping.SeriesColumn].ToString()); foreach (IGrouping <string, DataRow> series in result) { var seriesInfo = new ChartSeriesInfo(series.Key, viewType.ToString()); var xValues = series.Cast <DataRow>().GroupBy <DataRow, string>(dr => dr[mapping.XColumn].ToString()); foreach (IGrouping <string, DataRow> points in xValues) { seriesInfo.SeriesPoints.Add(new ChartSeriesPointInfo(points.Key, points.Sum <DataRow>(o => decimal.Parse(o[mapping.YColumn].ToString())))); } chartSeries.Add(seriesInfo); } return(chartSeries); }