AppActs.Client.WebSite.App_Base.GraphConverter.serializeChart C# (CSharp) Méthode

serializeChart() private static méthode

Serializes the chart.
private static serializeChart ( Graph graph ) : object>.IDictionary
graph AppActs.Client.Model.Graph The graph.
Résultat object>.IDictionary
        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;
        }