private static string GetThemeLayer(Theme theme, ThemeParameters param)
{
string themeLayerJson = "{";
List<string> themeLayerList = new List<string>();
List<string> joinItemsList = new List<string>();
if (theme is ThemeUnique)
{
themeLayerList.Add(string.Format("\"theme\":{0}", ThemeUnique.ToJson((ThemeUnique)theme)));
}
else if (theme is ThemeRange)
{
themeLayerList.Add(string.Format("\"theme\":{0}", ThemeRange.ToJson((ThemeRange)theme)));
}
else if (theme is ThemeDotDensity)
{
themeLayerList.Add(string.Format("\"theme\":{0}", ThemeDotDensity.ToJson((ThemeDotDensity)theme)));
}
else if (theme is ThemeGraduatedSymbol)
{
themeLayerList.Add(string.Format("\"theme\":{0}", ThemeGraduatedSymbol.ToJson((ThemeGraduatedSymbol)theme)));
}
else if (theme is ThemeGraph)
{
themeLayerList.Add(string.Format("\"theme\":{0}", ThemeGraph.ToJson((ThemeGraph)theme)));
}
else if (theme is ThemeLabel)
{
themeLayerList.Add(string.Format("\"theme\":{0}", ThemeLabel.ToJson((ThemeLabel)theme)));
}
else if (theme is ThemeGridRange)
{
themeLayerList.Add(string.Format("\"theme\":{0}", ThemeGridRange.ToJson((ThemeGridRange)theme)));
}
else if (theme is ThemeGridUnique)
{
themeLayerList.Add(string.Format("\"theme\":{0}", ThemeGridUnique.ToJson((ThemeGridUnique)theme)));
}
else
{
themeLayerList.Add("\"theme\":null");
}
themeLayerList.Add("\"type\":\"UGC\"");
themeLayerList.Add("\"ugcLayerType\":\"THEME\"");
//themeLayerList.Add(string.Format("\"name\":\"{0}\"", param.Name));
themeLayerList.Add(string.Format("\"datasetInfo\":{0}",
GetDatasetInfo(param.DatasetName, param.DataSourceName)));
if (param.MinVisibleGeometrySize != null)
{
themeLayerList.Add(string.Format("\"minVisibleGeometrySize\":{0}", param.MinVisibleGeometrySize));
}
foreach (var item in param.JoinItems)
{
joinItemsList.Add(JoinItem.ToJson(item));
}
string joinItemsStr = string.Join(",", joinItemsList);
themeLayerList.Add(string.Format("\"joinItems\":[{0}]", joinItemsStr));
themeLayerJson += string.Join(",", themeLayerList.ToArray());
themeLayerJson += "}";
return themeLayerJson;
}