public void ImportAddressButtonClick()
        {
            try
            {
                string languageFilePath = view.OpenFileDialog(
                    fileExt: "html",
                    title: "Open Alba Language File");

                string addressFilePath = view.OpenFileDialog(
                    fileExt: "csv",
                    title: "Open Alba Address CSV File to Upload");

                if (string.IsNullOrWhiteSpace(languageFilePath) ||
                    string.IsNullOrWhiteSpace(addressFilePath))
                {
                    return;
                }

                new ImportAddress(AuthenticatedClient(), int.Parse(view.UploadDelayMs))
                .Upload(addressFilePath, languageFilePath);
            }
            catch (UserException e)
            {
                view.ShowMessageBox(e.Message);
            }
        }
        public Coordinate Geocode(AlbaAddressImport address)
        {
            if (client.BasePath == null)
            {
                view.ShowMessageBox("You do not have a base path set!");
                return(null);
            }

            var url          = NominatimUrlBuilder.GeocodeAddress(address);
            var resultString = client.DownloadString(url);

            // TODO: Need to geocode

            GeocodedAddress[] result = JsonConvert.DeserializeObject <GeocodedAddress[]>(resultString);

            if (result.Length == 0)
            {
                return(null);
            }

            var a = result[0];

            double.TryParse(a.lat, out double lat);
            double.TryParse(a.lon, out double lon);

            return(new Coordinate
            {
                Latitude = lat,
                Longitude = lon
            });
        }
예제 #3
0
        public Coordinate Geocode(AlbaAddressImport address)
        {
            if (client.BasePath == null)
            {
                view.ShowMessageBox("You do not have a base path set!");
                return(null);
            }

            var url          = AzureMapsUrlBuilder.GeocodeAddress(address);
            var resultString = client.DownloadString(url);

            var result = JsonConvert.DeserializeObject <GeocodeResult>(resultString);

            if (result.results.Length == 0)
            {
                return(null);
            }

            var r = result.results[0];

            return(new Coordinate
            {
                Latitude = r.position.lat,
                Longitude = r.position.lon
            });
        }
        public void Upload()
        {
            if (client.BasePath == null)
            {
                view.ShowMessageBox("You are not logged on to Alba.  Please Logon.");
                return;
            }

            string fileName = view.OpenFileDialog("kml");

            if (string.IsNullOrWhiteSpace(fileName))
            {
                return;
            }

            var kml         = new KmlGateway().Load(fileName);
            var territories = new KmlToTerritoryConverter()
                              .TerritoryListFrom(kml)
                              .Where(t => t.Border != null && t.Border.Vertices != null && t.Border.Vertices.Count > 0)
                              .ToList();

            view.AppendResultText("Uploading " + territories.Count + " territory borders...");

            foreach (var territory in territories)
            {
                int count = territory.Border.Vertices.Count;

                var url          = RelativeUrlBuilder.RequestToAddNew(territory);
                var resultString = client.DownloadString(url);

                view.AppendResultText("Territory: " + territory.Number);
                view.AppendResultText(count + " vertices where uploaded..." + Environment.NewLine);
                view.AppendResultText(resultString + Environment.NewLine + Environment.NewLine);
                Thread.Sleep(delay);
            }
        }