public void TestReadTable() { SCBClient reader = new SCBClient("api.scb.se/OV0104"); SCBNode node = new SCBNode { path = "http://api.scb.se/OV0104/v1/doris/en/ssd/BE/BE0401/BE0401A/BefolkPrognRevN", type = "t", id = "BefProgFoddaMedel19" }; SCBMetaData meta = reader.GetMetaData(node.path).Result; SCBQuery query = new SCBQuery { response = new SCBResponse("json") }; query.SetUp(meta.variables); query.SetSelection(meta.variables.Find(s => s.code == "Fodelseregion"), SCBQuery.Filter.item, new List <string>() { "13" }); query.SetSelection(meta.variables.Find(s => s.code == "Kon"), SCBQuery.Filter.item, new List <string>() { "1" }); query.SetSelection(meta.variables.Find(s => s.code == "Tid"), SCBQuery.Filter.item, new List <string>() { "2020" }); SCBTable table = reader.GetTable(node, query).Result; }
static void PresentTable(SCBTable table) { foreach (SCBColumn tableColumn in table.columns) { if (tableColumn.type == "c" && !string.IsNullOrEmpty(tableColumn.unit)) { Console.Write($"{tableColumn.text} [{tableColumn.unit}] "); } else { Console.Write($"{tableColumn.text} "); } } Console.WriteLine(); foreach (SCBTableEntry scbTableEntry in table.data) { foreach (string s in scbTableEntry.key) { Console.Write($"{s} "); } foreach (string s in scbTableEntry.values) { Console.Write($"{s} "); } Console.WriteLine(); } }
private async Task <bool> QueryDatabase(SCBTreeNode node) { _currentTable = await _controller.GetTable(node.Node, _currentQuery); if (_currentTable.columns == null) { MessageBox.Show("Error: no data", "Alert!", MessageBoxButtons.OK); return(false); } _currentTable.Setup(); return(true); }
private static void QueryTable(SCBMetaData metaData, SCBClient client, SCBNode current) { SCBQuery query = new SCBQuery(); foreach (SCBVariable variable in metaData.variables) { SCBQueryItem qi = new SCBQueryItem { code = variable.code, selection = new SCBSelection { filter = "top" } }; Console.Out.Write($"{variable.code} : "); Console.Out.Write("Filter [item,all,top,agg,quit] = "); bool ok = false; while (!ok) { string ans = Console.In.ReadLine(); string shortString = (ans.Length < 2) ? String.Empty : (ans ?? string.Empty).Substring(0, 2).ToLower(); switch (shortString) { case "it": qi.selection.values.AddRange(GetItems(variable)); qi.selection.filter = "item"; ok = true; break; case "al": qi.selection.values.Add("*"); qi.selection.filter = "all"; ok = true; break; case "to": qi.selection.values.Add(GetTop().ToString()); qi.selection.filter = "top"; ok = true; break; case "ag": qi.selection.filter = "agg"; ok = true; break; case "qu": ok = true; break; default: break; } if (!ok) { Console.Out.WriteLine("Invalid input, please try again, or Quit!"); Console.Out.Write("Filter [Item,All,Top,Agg,Quit] = "); } ; } query.query.Add(qi); } SCBTable table = client.GetTable(current, query); PresentTable(table); }