using Newtonsoft.Json; using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Net; using System.Text; using System.Threading.Tasks; using Tango.AutoComplete.Editors; using Tango.Logging; namespace Tango.MachineStudio.UsersAndRoles.Providers { public class PlacesProvider : ISuggestionProvider { public IEnumerable GetSuggestions(string filter) { List places = new List(); using (WebClient web = new WebClient()) { try { String json = null; web.Headers.Add(HttpRequestHeader.UserAgent, "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0"); web.Headers.Add(HttpRequestHeader.ContentType, "application/json"); web.Headers.Add(HttpRequestHeader.AcceptLanguage, "en-US"); json = web.DownloadString(String.Format("https://nominatim.openstreetmap.org/search?q={0}&format=json&addressdetails=1", filter)); if (json != null) { List results = JsonConvert.DeserializeObject>(json); places.AddRange(results); } } catch (Exception ex) { LogManager.Default.Log(ex, LogCategory.Debug); } } return places; } } }