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;
        }
Example #6
0
        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);
        }