public override JsonAttribute AsJsonAttribute()
        {
            JsonObject[] seriesObjects = new JsonObject[this.Series.Count()];

            for (int i = 0; i < seriesObjects.Length; i++)
            {
                Serie serie = this.Series.ElementAt(i);
                JsonObject serieObj = new JsonObject();

                serieObj.Add(new JsonAttribute("name", serie.Name));
                if (!serie.Type.Equals(ChartSerieType.Default))
                    serieObj.Add(new JsonAttribute("type", serie.Type));
                serieObj.Add(new JsonAttribute("data", serie.Values));

                if(serie is PieSerie)
                {
                    var pieSerie = serie as PieSerie;

                    if(pieSerie.Size.HasValue)
                    {
                        serieObj.Add(new JsonAttribute("size", string.Format("{0}%", pieSerie.Size.Value)));
                    }
                    if(pieSerie.InnerSize.HasValue)
                    {
                        serieObj.Add(new JsonAttribute("innerSize", string.Format("{0}%", pieSerie.InnerSize.Value)));
                    }
                }

                seriesObjects[i] = serieObj;
            }

            return new JsonAttribute("series", seriesObjects);
        }
        public void EmptyObject()
        {
            var json = new JsonObject();
            var actual = json.ToString();
            var expected = "{ }";

            HtmlAssert.AreEqual(expected, actual);
        }
        public void EmptyWithOneAttribute()
        {
            var json = new JsonObject();
            json.Add(new JsonAttribute("title", "My Object"));
            var actual = json.ToString();
            var expected = "{ title: 'My Object' }";

            HtmlAssert.AreEqual(expected, actual);
        }
        public void EmptyWithTwoAttributes()
        {
            var json = new JsonObject();
            json.Add(new JsonAttribute("title", "My Object"));
            json.Add(new JsonAttribute("subtitle", "This is the subtitle"));
            var actual = json.ToString();
            var expected = @"{
                                title: 'My Object',
                                subtitle: 'This is the subtitle'
                            }";

            HtmlAssert.AreEqual(expected, actual);
        }
        public void AttributeWithTwoChildObjects()
        {
            var firstObj = new JsonObject();
            firstObj.Add(new JsonAttribute("name", "First Value"));

            var secondObj = new JsonObject();
            secondObj.Add(new JsonAttribute("name", "Second Value"));

            var chart = new JsonAttribute("series", firstObj, secondObj);
            string actual = chart.ToString();
            string expected = @"series: [
                                    { name: 'First Value'},
                                    { name: 'Second Value'}
                                ]";

            HtmlAssert.AreEqual(expected, actual);
        }
 public AjaxChartDataSource(string url)
 {
     this.jsonConfiguration = new JsonObject();
     this.jsonConfiguration.Add(new JsonAttribute("url", url));
 }