public async Task <object> Search(string searchPhrase) { object result = ""; //Call API HttpResponseMessage response = await _client.GetAsync($"https://www.re3data.org/api/beta/repositories?query={searchPhrase}"); //Parse response if (response.IsSuccessStatusCode) { var responseStr = await response.Content.ReadAsStringAsync(); //Load XML var doc = new XmlDocument(); doc.LoadXml(responseStr); //Convert to Json var jstr = JsonConvert.SerializeXmlNode(doc); var jobj = JObject.Parse(jstr); var parsedItems = jobj["list"]["repository"]. Select(x => new StandardVocabItem() { Id = x["id"].ToString(), Value = x["name"].ToString(), AdditionalData = new List <KeyValuePair <string, string> >() { new KeyValuePair <string, string>("link", x["link"]["@href"].ToString()) } }) .OrderBy(x => x.Value) .ToList(); result = new StandardVocabOutput() { Items = parsedItems }; } return(result); }
public async Task <object> Search(string searchPhrase) { object result = ""; //Read file var fileContent = ""; using (Stream stream = _client.OpenRead("http://app01.saeon.ac.za/portal/www/sagdad.js")) { using (StreamReader reader = new StreamReader(stream)) { fileContent = await reader.ReadToEndAsync(); } } if (!string.IsNullOrEmpty(fileContent)) { //Parse to JObject var jstr = "{\"SAGDAD\": " + fileContent + "}"; var jobj = JObject.Parse(jstr); //Filter and parse result var filteredItems = jobj["SAGDAD"] .Where(x => x["text"].ToString().ToLower().Contains(searchPhrase.ToLower())) .Select(x => new StandardVocabItem { Id = x["id"].ToString(), Value = x["text"].ToString() }) .OrderBy(x => x.Value) .ToList(); result = new StandardVocabOutput() { Items = filteredItems }; } return(result); }
public async Task <object> Search(string searchPhrase) { object result = ""; //Call API HttpResponseMessage response = await _client.GetAsync($"https://pub.orcid.org/v2.1/search?q=\"{searchPhrase}\""); //Parse response if (response.IsSuccessStatusCode) { var responseStr = await response.Content.ReadAsStringAsync(); //Convert to Json var jobj = JObject.Parse(responseStr); //result = jobj; var parsedResult = jobj["result"] .Select(x => new StandardVocabItem() { Id = x["orcid-identifier"]["path"].ToString(), Value = x["orcid-identifier"]["path"].ToString(), AdditionalData = new List <KeyValuePair <string, string> >() { new KeyValuePair <string, string>("link", x["orcid-identifier"]["uri"].ToString()) } }) .OrderBy(x => x.Value) .ToList(); //Convert to Object result = new StandardVocabOutput() { Items = parsedResult }; } return(result); }
private async Task <List <StandardVocabItem> > GetVMSData(string relativeURL) { var result = new StandardVocabOutput(); //Setup http-client var client = new HttpClient(); client.BaseAddress = new Uri(_config.GetValue <string>("VmsApiBaseUrl")); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); //Get data from VMS API var response = await client.GetAsync(relativeURL); if (response != null) { var jsonString = await response.Content.ReadAsStringAsync(); result = JsonConvert.DeserializeObject <StandardVocabOutput>(jsonString); } return(result.Items); }
public StandardVocabOutput ListFlat() { var result = new StandardVocabOutput(); var hazards = _context.Hazards .Include(x => x.Parent) .OrderBy(x => x.Value); foreach(var haz in hazards) { var stdVocabItem = new StandardVocabItem(); stdVocabItem.Id = haz.Id.ToString(); stdVocabItem.Value = haz.Value; if (haz.Parent != null) { stdVocabItem.AdditionalData.Add(new KeyValuePair<string, string>("ParentId", haz.Parent.Id.ToString())); } result.Items.Add(stdVocabItem); } return result; }
public StandardVocabOutput ListFlat() { var result = new StandardVocabOutput(); var sectors = _context.Sectors .Include(x => x.Parent) .OrderBy(x => x.Value); foreach (var sec in sectors) { var stdVocabItem = new StandardVocabItem(); stdVocabItem.Id = sec.Id.ToString(); stdVocabItem.Value = sec.Value; if (sec.Parent != null) { stdVocabItem.AdditionalData.Add(new KeyValuePair <string, string>("ParentId", sec.Parent.Id.ToString())); } result.Items.Add(stdVocabItem); } return(result); }