public SeriesMeta(int id, string dataSource, string name, SeriesTagList tagList) { this._id = id; this._dataSource = dataSource; this._name = name; this._tagList = tagList; }
protected void Page_Load(object sender, EventArgs e) { _tags = SeriesManager.GetSeriesTags(SeriesManager.GetSeriesTagTypes()); string json = string.Empty; StringBuilder sb = new StringBuilder(); string type = string.Empty; foreach (SeriesTag tag in _tags) { if (tag.Type != type) { type = tag.Type; if (sb.Length > 0) { json = sb.ToString(); json = json.Remove(json.Length - 1); json += "]},"; sb = new StringBuilder(); sb.Append(json); }; sb.Append("{\"title\": \"" + tag.Type + "\", \"isFolder\": true, \"unselectable\": true, \"expand\": " + (tag.Type == "DATA_SOURCE" ? "true": "false") + ", \"key\": \"" + tag.Type + "\", \"children\": ["); }; sb.Append("{\"title\": \"" + tag.Value + "\", \"isFolder\": true, \"unselectable\": true, \"isLazy\": true, \"key\": \"" + "?tagtype=" + tag.Type + "&tagvalue=" + tag.Value + "\"},"); }; json = sb.ToString(); json = json.Remove(json.Length - 1); json = "[" + json + "]}]"; Response.Write(json); }
public static SeriesMetaList GetSeriesMetaList() { SeriesMetaList list = new SeriesMetaList(); string data = GetRequest("https://fundalytics.argusmedia.com/datatypes/2013-01-01/00.00"); XmlDocument xml = new XmlDocument(); xml.LoadXml(data); foreach (XmlNode xmlMeta in xml.SelectNodes("/ArgusFundamentals/DataTypes/DataType")) { data = GetRequest("https://fundalytics.argusmedia.com/datatypes/" + xmlMeta.ChildNodes[0].InnerText); XmlDocument tagsXML = new XmlDocument(); tagsXML.LoadXml(data); SeriesTagList tags = new SeriesTagList(); foreach (XmlNode xmlTag in tagsXML.SelectNodes("/ArgusFundamentals/DataType/DataTypeTags/DataTypeTag")) { tags.Add(new SeriesTag(xmlTag.ChildNodes[0].InnerText, xmlTag.ChildNodes[1].InnerText)); }; list.Add(new SeriesMeta(Convert.ToInt32(xmlMeta.ChildNodes[0].InnerText), xmlMeta.ChildNodes[1].InnerText, xmlMeta.ChildNodes[2].InnerText, tags)); }; return list; }
public static SeriesMeta GetSeriesMeta(int id) { SeriesMeta meta; SeriesTagList metaTagList = new SeriesTagList(); string data = GetRequest("https://fundalytics.argusmedia.com/datatypes/" + id.ToString()); XmlDocument xml = new XmlDocument(); xml.LoadXml(data); foreach (XmlNode xmlTag in xml.SelectNodes("/ArgusFundamentals/DataType/DataTypeTags/DataTypeTag")) { metaTagList.Add(new SeriesTag(xmlTag.ChildNodes[0].InnerText, xmlTag.ChildNodes[1].InnerText)); }; meta = new SeriesMeta( Convert.ToInt32(xml.SelectSingleNode("/ArgusFundamentals/DataType/Id").InnerText), xml.SelectSingleNode("/ArgusFundamentals/DataType/Source").InnerText, xml.SelectSingleNode("/ArgusFundamentals/DataType/Name").InnerText, metaTagList ); return meta; }
protected void Page_Load(object sender, EventArgs e) { if ((!Request.QueryString.AllKeys.Contains("tagtype")) || (!Request.QueryString.AllKeys.Contains("tagvalue"))) { return; }; _parentNodes = ParentNodes(); _seriesMeta = SeriesManager.GetSeriesMeta(SeriesManager.GetSeriesTagTypes(), _parentNodes); if (_seriesMeta.Count > MAX_LEAF_NODES) { Response.Write(ChildNodesJSON(_seriesMeta, _parentNodes)); } else { Response.Write(LeafNodesJSON(_seriesMeta)); }; }
public static SeriesMetaList GetSeriesMeta(IList<string> tagTypes, SeriesTag tag) { SeriesMetaList _meta = new SeriesMetaList(); var db = new Database(); string sql = "SELECT " + "DISTINCT CORE_DATUM_TYPE_ID, DATA_SOURCE, NAME, TAG_TYPE, TAG_VALUE, TAG_DESCRIPTION " + "FROM " + "CORE.DATUM_TYPE_TAG " + "WHERE " + "TAG_TYPE IN " + GetTagTypeInClauseValues(tagTypes) + " " + "ORDER BY " + "CORE_DATUM_TYPE_ID, TAG_TYPE, TAG_VALUE "; DataTable table = db.GetDataTable(sql); int id = 0; string dataSource = string.Empty; string name = string.Empty; SeriesTagList metaTags = new SeriesTagList(); foreach (DataRow record in table.Rows) { if (Convert.ToInt32(record["CORE_DATUM_TYPE_ID"]) != id) { if ((id != 0) && (metaTags.ContainsTag(tag))) { _meta.Add(new SeriesMeta(id, dataSource, name, metaTags)); }; id = Convert.ToInt32(record["CORE_DATUM_TYPE_ID"]); dataSource = record["DATA_SOURCE"].ToString(); name = record["NAME"].ToString(); metaTags = new SeriesTagList(); } metaTags.Add(new SeriesTag(record["TAG_TYPE"].ToString(), record["TAG_VALUE"].ToString())); }; return _meta; }
private string ChildNodesJSON(SeriesMetaList meta, SeriesTagList parentNodes) { string json = string.Empty; StringBuilder sb = new StringBuilder(); string type = string.Empty; foreach (SeriesTag tag in _seriesMeta.DistinctTagList()) { if (!parentNodes.ContainsTagType(tag)) { if (tag.Type != type) { type = tag.Type; if (sb.Length > 0) { json = sb.ToString(); json = json.Remove(json.Length - 1); json += "]},"; sb = new StringBuilder(); sb.Append(json); }; sb.Append("{\"title\": \"" + tag.Type + "\", \"isFolder\": true, \"unselectable\": true, \"key\": \"" + tag.Type + "\", \"children\": ["); }; sb.Append("{\"title\": \"" + tag.Value + "\", \"isFolder\": true, \"unselectable\": true, \"isLazy\": true, \"key\": \"" + "?"); foreach (SeriesTag node in parentNodes) { sb.Append("&tagtype=" + node.Type + "&tagvalue=" + node.Value); }; sb.Append("&tagtype=" + tag.Type + "&tagvalue=" + tag.Value + "\"},"); }; }; json = sb.ToString(); json = json.Remove(json.Length - 1); json = "{\"title\": \"" + meta.Count.ToString() + " matching series\"}," + json; json = "[" + json + "]}]"; return json; }
public static SeriesTagList GetSeriesTags(IList<string> tagTypes) { SeriesTagList _tags = new SeriesTagList(); var db = new Database(); string sql = "SELECT " + "DISTINCT TAG_TYPE, TAG_VALUE " + "FROM " + "CORE.DATUM_TYPE_TAG " + "WHERE " + "TAG_TYPE IN " + GetTagTypeInClauseValues(tagTypes) + " " + "ORDER BY " + "TAG_TYPE, TAG_VALUE "; DataTable table = db.GetDataTable(sql); foreach (DataRow record in table.Rows) { _tags.Add(new SeriesTag(record["TAG_TYPE"].ToString(), record["TAG_VALUE"].ToString())); }; return _tags; }
private SeriesTagList ParentNodes() { SeriesTagList parentNodes = new SeriesTagList(); string [] tag_type = Request.QueryString["tagtype"].Split(new char[] { ',' }); string [] tag_value = Request.QueryString["tagvalue"].Split(new char[] { ',' }); for (int ix = 0; ix < tag_type.Length; ix++) { parentNodes.Add(new SeriesTag(tag_type[ix], tag_value[ix])); }; return parentNodes; }
public static IList<SeriesTag> GetTags() { SeriesTagList tags = new SeriesTagList(); string data = GetRequest("https://fundalytics.argusmedia.com/tags/"); XmlDocument xml = new XmlDocument(); xml.LoadXml(data); foreach (XmlNode xmlTag in xml.SelectNodes("/ArgusFundamentals/Tags/Tag")) { tags.Add(new SeriesTag(xmlTag.ChildNodes[1].InnerText, xmlTag.ChildNodes[2].InnerText)); }; List<SeriesTag> sortedTags = tags.OrderBy(x => x.Value).OrderBy(x => x.Type).ToList(); return sortedTags; }