forked from lisa3907/dotnet.highstock
/
Container.cs
48 lines (40 loc) · 1.67 KB
/
Container.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
namespace DotNet.Highstock
{
public class Container : IHtmlString
{
readonly List<Highstock> _Highstock;
public Container(IEnumerable<Highstock> highstock)
{
_Highstock = new List<Highstock>();
_Highstock.AddRange(highstock);
}
#region IHtmlString Members
public string ToHtmlString()
{
StringBuilder scripts = new StringBuilder();
_Highstock.ForEach(x => scripts.AppendLine("<div id='{0}'></div>".FormatWith(x.ContainerName)));
List<Highstock> startupCharts = _Highstock.Where(x => String.IsNullOrEmpty(x.FunctionName)).ToList();
scripts.AppendLine("<script type='text/javascript'>");
startupCharts.ForEach(x => scripts.AppendLine("var {0};".FormatWith(x.Name)));
scripts.AppendLine("$(document).ready(function() {");
startupCharts.ForEach(scripts.AppendHighstock);
scripts.AppendLine("});");
List<Highstock> functionCharts = _Highstock.Where(x => !String.IsNullOrEmpty(x.FunctionName)).ToList();
foreach (Highstock chart in functionCharts)
{
scripts.AppendLine("var {0};".FormatWith(chart.Name));
scripts.AppendLine(String.Format("function {0}() {{", chart.FunctionName));
scripts.AppendHighstock(chart);
scripts.AppendLine("}");
}
scripts.AppendLine("</script>");
return scripts.ToString();
}
#endregion
}
}