AppActs.Client.WebSite.App_Base.GraphSeriesConverter.Serialize C# (CSharp) Метод

Serialize() публичный Метод

When overridden in a derived class, builds a dictionary of name/value pairs.
public Serialize ( object obj, System.Web.Script.Serialization.JavaScriptSerializer serializer ) : object>.IDictionary
obj object The object to serialize.
serializer System.Web.Script.Serialization.JavaScriptSerializer The object that is responsible for the serialization.
Результат object>.IDictionary
        public override IDictionary<string, object> Serialize(object obj, JavaScriptSerializer serializer)
        {
            List<GraphSeries> serieses = obj as List<GraphSeries>;

            if (serieses != null)
            {
                IDictionary<string, object> keyToValue = new Dictionary<string, object>();
                ArrayList arrayList = new ArrayList();

                int seriesesCount = serieses.Count;

                if(seriesesCount >= 1)
                {
                    int axisCount = serieses[0].Axis.Count;

                    //pre determine load type to save on speed
                    Action<Dictionary<string, object>, List<GraphSeries>, int>
                        populateColumns = this.populateColumnsOne;

                    Action<IDictionary<string, object>, List<GraphSeries>>
                        populateHeader = this.populateHeaderOne;

                    if (seriesesCount == 2)
                    {
                        populateColumns = this.populateColumnsTwo;
                        populateHeader = this.populateHeaderTwo;
                    }

                    if (seriesesCount == 3)
                    {
                        populateColumns = this.populateColumnsThree;
                        populateHeader = this.populateHeaderThree;
                    }

                    for (int i = 0; i < axisCount; i++)
                    {
                        Dictionary<string, object> dicRow = new Dictionary<string, object>();
                        populateColumns(dicRow, serieses, i);
                        arrayList.Add(dicRow);
                    }

                    populateHeader(keyToValue, serieses);
                }

                keyToValue.Add("Data", arrayList);
                return keyToValue;
            }

            return new Dictionary<string, object>();
        }