/// <summary> /// Serializes the chart. /// </summary> /// <param name="graph">The graph.</param> /// <returns></returns> private static IDictionary<string, object> serializeChart(Graph graph) { Type typeDateTime = typeof(DateTime); Dictionary<string, int> dicXtype = new Dictionary<string, int>(); //cache x values if we are working with strings, we will need ticker tape to display values if (graph.Series.Count > 0 && graph.Series[0].Axis.Count > 0) { for (int i = 0; i < graph.Series[0].Axis.Count; i++) { dicXtype.Add(graph.Series[0].Axis[i].X.ToString(), i); } } bool yyIsUsed = graph.YYLabel != null && graph.YYLabel.Length > 0; Dictionary<string, object> dictValueToObject = new Dictionary<string, object>(); ArrayList arrayList = new ArrayList(); Dictionary<string, object> dictYYToValues = new Dictionary<string, object>(); foreach (GraphSeries series in graph.Series) { ArrayList arrayListYY = new ArrayList(); Dictionary<string, object> dictList = new Dictionary<string, object>(); dictList.Add("label", series.Name); ArrayList arrayListAxis = new ArrayList(); foreach (GraphAxis axis in series.Axis) { ArrayList arrayListXY = new ArrayList(); if (graph.XType == typeDateTime) { arrayListXY.Add(axis.X); } else { arrayListXY.Add(dicXtype[axis.X.ToString()]); } arrayListXY.Add(axis.Y); if(yyIsUsed) { arrayListYY.Add(axis.YY); } arrayListAxis.Add(arrayListXY); } if (yyIsUsed) { dictYYToValues.Add(series.Name, arrayListYY); } dictList.Add("data", arrayListAxis); arrayList.Add(dictList); } dictValueToObject.Add("Series", arrayList); ArrayList arrayListTicker = new ArrayList(); foreach (KeyValuePair<string, int> ticker in dicXtype) { ArrayList arrayListTickerValues = new ArrayList(); arrayListTickerValues.Add(ticker.Value); arrayListTickerValues.Add(ticker.Key); arrayListTicker.Add(arrayListTickerValues); } dictValueToObject.Add("Ticker", arrayListTicker); if (yyIsUsed) { dictValueToObject.Add("YY", dictYYToValues); } return dictValueToObject; }
/// <summary> /// Serializes the chart pie. /// </summary> /// <param name="graph">The graph.</param> /// <returns></returns> private static IDictionary<string, object> serializeChartPie(Graph graph) { ArrayList arrayList = new ArrayList(); GraphSeries series = graph.Series[0]; Dictionary<string, object> dictValueToObject = new Dictionary<string, object>(); foreach (GraphAxis graphAxis in series.Axis) { Dictionary<string, object> dictList = new Dictionary<string, object>(); dictList.Add("label", graphAxis.X); dictList.Add("data", graphAxis.Y); arrayList.Add(dictList); } dictValueToObject.Add("Series", arrayList); return dictValueToObject; }