Пример #1
0
        /// <summary>
        /// Parses the source <see cref="Response.Etymology"/> array to an <see cref="Etymology"/> object
        /// </summary>
        public static Etymology ParseEtymology(this Response.Etymology[][] source)
        {
            var etymology = new Etymology();

            if (source[0][0].TypeOrText == "text")
            {
                string text = source[0][1].TypeOrText;
                etymology.Text = text;
            }

            if (source.Length > 1 && source[1][0].TypeOrText == "et_snote")
            {
                var    content = source[1][1].Content;
                string text    = content[0][1];

                etymology.Note = text;
            }

            return(etymology);
        }
Пример #2
0
        public ActionResult <WikidataSearchResponse> Get(string id)
        {
            var tags = OsmApi.Singleton.Get(id).Result.Tags;

            if (tags.TryGetValue("name:etymology:wikidata", out var wikidata))
            {
                return(new WikidataSearchResponse(alreadyMatched: true));
            }

            if (!tags.TryGetValue("name", out var streetname))
            {
                return(new WikidataSearchResponse(alreadyMatched: true));
            }

            var name = Etymology.DropStreetOfName(streetname);

            Console.WriteLine("Searching for " + streetname);
            var wikidataEntries = Etymology.Singleton.FetchEtymologyFor(name).Result;

            return(new WikidataSearchResponse(wikidataEntries));
        }
Пример #3
0
 private static void SetSupplementalNote(Etymology etymology, JArray array)
 => etymology.Et_snote = array.ParseNextAs <List <JArray> >()
                         .Select(subArray => subArray.ParseNextAsString())
                         .ToList();
Пример #4
0
 private static void SetText(Etymology etymology, JArray array)
 => etymology.Text = array.ParseNextAsString();