public CartoPlaceInfo FindLocalityPlace(CartoPlaceInfo place)
        {
            if (String.IsNullOrWhiteSpace(place.Locality))
            {
                return(null);
            }
            var places = Places.Where(x => x.Country.CountryID == place.Country.CountryID && String.Compare(x.Name, place.Locality, true) == 0);

            if (place.Region == null)
            {
                return(places.FirstOrDefault());
            }
            else
            {
                var p = places.Where(x => x.Region != null && x.Region.RegionID == place.Region.RegionID).FirstOrDefault();
                if (p != null)
                {
                    return(p);
                }
                else
                {
                    return(places.FirstOrDefault());
                }
            }
        }
 public bool IsStart(CartoPlaceInfo place)
 {
     foreach (var track in Preview.TopoTracks)
     {
         if (track.StartPlace?.Key == place.Key)
         {
             return(true);
         }
     }
     return(false);
 }
        /// <summary>
        /// Geocodes the given location from google
        /// </summary>
        public List <CartoPlaceInfo> LookupLocations(IGeoLatLon point)
        {
            var response = _google.RequestLocations(point);

            var list = new List <CartoPlaceInfo>();

            foreach (var result in response.Results)
            {
                var place = FindByGooglePlaceID(result.PlaceID);
                if (place == null)
                {
                    place = new CartoPlaceInfo(result);
                }
                list.Add(place);
            }

            return(list);
        }
        /// <summary>
        /// Google places search with name and optional country
        /// </summary>
        public List <CartoPlaceInfo> LookupPlaces(string name, string country = "")
        {
            var text     = $"{name} {country}".Trim();         // TODO: HACK: make this acually use the correct country filter mechanism
            var response = _google.RequestPlaces(text);

            var list = new List <CartoPlaceInfo>();

            foreach (var placeID in response.Results)
            {
                var place = FindByGooglePlaceID(placeID);
                if (place == null)
                {
                    var result = _google.RequestPlace(placeID).Result;
                    place = new CartoPlaceInfo(result);
                }
                list.Add(place);
            }

            return(list);
        }
        /// <summary>
        /// Loads cached places from local storage
        /// </summary>
        public void Init(string uri)
        {
            lock (_cache)
            {
                if (_cached)
                {
                    return;
                }

                _uri = uri;
                var reader = new XlsFileReader(uri);
                var file   = reader.ReadFile();

                var sheet = new CartoPlaceSheetData(file.Sheets[0]);
                foreach (var row in sheet.Rows)
                {
                    var info = new CartoPlaceInfo(row);
                    _cache.Add(info);
                }

                _cached = true;
                _dirty  = false;
            }
        }
Esempio n. 6
0
 public CartoPlaceFormModel(CartoPlaceInfo place, CartoPlaceData data = null)
 {
     Place     = place;
     Data      = data ?? place.GetData();
     Political = new GeoPolitical(Data);
 }
Esempio n. 7
0
 // ==================================================
 // CartoPlaceInfo
 public static HtmlString GetJson(CartoPlaceInfo place)
 {
     return(new HtmlString(place == null ? "{}" : place.ToJson()));
 }
 public bool ContainsPlace(CartoPlaceInfo place)
 {
     return(Places.Any(x => x.Key == place.Key));
 }
 // ==================================================
 // Helpers
 private string GetFullTextSearch(CartoPlaceInfo place)
 {
     return($"{place.Name} {place.LocalName} {place.DisplayAs} {place.Address}".ToLowerInvariant());
 }
 public static string GetDeleteUrl(CartoPlaceInfo place)
 {
     return($"/place/delete/{place.Key}/");
 }
 public static string GetUpdateUrl(CartoPlaceInfo place)
 {
     return(GetUpdateUrl(place.Key));
 }
        }                                                                                          // TODO: CARTO: RC1: build display page

        public static string GetDisplayUrl(CartoPlaceInfo place)
        {
            return(GetDisplayUrl(place.Key));
        }