/// <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); }
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)); }
private static void SetSupplementalNote(Etymology etymology, JArray array) => etymology.Et_snote = array.ParseNextAs <List <JArray> >() .Select(subArray => subArray.ParseNextAsString()) .ToList();
private static void SetText(Etymology etymology, JArray array) => etymology.Text = array.ParseNextAsString();