using System.Collections.Generic; using System.IO; using System.Runtime.Serialization; using System.Runtime.Serialization.Json; namespace RevolvingCow.Highcharts { /// /// Highchart graph object. /// [DataContract] public class Highchart { /// /// Gets or sets the chart. /// [DataMember(Name = "chart", EmitDefaultValue = false, IsRequired = false)] public HighchartChart Chart { get; set; } /// /// Gets or sets a list of colors. /// [DataMember(Name = "colors", EmitDefaultValue = false, IsRequired = false)] public IEnumerable Colors { get; set; } /// /// Gets or sets the credits. /// [DataMember(Name = "credits", EmitDefaultValue = false, IsRequired = false)] public HighchartCredits Credits { get; set; } /// /// Gets or sets the drilldown configuration. /// [DataMember(Name = "drilldown", EmitDefaultValue = false, IsRequired = false)] public HighchartDrilldown Drilldown { get; set; } /// /// Gets or sets the exporting options. /// [DataMember(Name = "exporting", EmitDefaultValue = false, IsRequired = false)] public HighchartExporting Exporting { get; set; } /// /// Gets or sets the labels. /// [DataMember(Name = "labels", EmitDefaultValue = false, IsRequired = false)] public HighchartLabels Labels { get; set; } /// /// Gets or sets the legend. /// [DataMember(Name = "legend", EmitDefaultValue = false, IsRequired = false)] public HighchartLegend Legend { get; set; } /// /// Gets or sets the loading options. /// [DataMember(Name = "loading", EmitDefaultValue = false, IsRequired = false)] public HighchartLoading Loading { get; set; } /// /// Gets or sets the navigation. /// [DataMember(Name = "navigation", EmitDefaultValue = false, IsRequired = false)] public HighchartNavigation Navigation { get; set; } /// /// Gets or sets the "no data" options. /// /// Requires the "no data" plugin. [DataMember(Name = "noData", EmitDefaultValue = false, IsRequired = false)] public HighchartNoData NoData { get; set; } /// /// Gets or sets the pane. /// [DataMember(Name = "pane", EmitDefaultValue = false, IsRequired = false)] public HighchartPane Pane { get; set; } /// /// Gets or sets the plot options. /// [DataMember(Name = "plotOptions", EmitDefaultValue = false, IsRequired = false)] public HighchartPlotOptions PlotOptions { get; set; } /// /// Gets or sets the series. /// [DataMember(Name = "series", EmitDefaultValue = false, IsRequired = false)] public IEnumerable Series { get; set; } /// /// Gets or sets the subtitle. /// [DataMember(Name = "subtitle", EmitDefaultValue = false, IsRequired = false)] public HighchartSubtitle Subtitle { get; set; } /// /// Gets or sets the title. /// [DataMember(Name = "title", EmitDefaultValue = false, IsRequired = false)] public HighchartTitle Title { get; set; } /// /// Gets or sets the tooltip. /// [DataMember(Name = "tooltip", EmitDefaultValue = false, IsRequired = false)] public HighchartTooltip Tooltip { get; set; } /// /// Gets or sets the x-axis. /// [DataMember(Name = "xAxis", EmitDefaultValue = false, IsRequired = false)] public HighchartAxis XAxis { get; set; } /// /// Gets or sets the y-axis. /// [DataMember(Name = "yAxis", EmitDefaultValue = false, IsRequired = false)] public HighchartAxis YAxis { get; set; } /// /// Returns the graph in a JSON format. /// /// JSON format of the object. public override string ToString() { string json = null; using (var memoryStream = new MemoryStream()) { var serializer = new DataContractJsonSerializer(this.GetType()); serializer.WriteObject(memoryStream, this); memoryStream.Position = 0; using (var reader = new StreamReader(memoryStream)) { json = reader.ReadToEnd(); } } return json; } } }