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
            });
        }
Example #2
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
            });
        }
Example #3
0
        public static string SaveAddressNotePrivate(AlbaAddressImport address)
        {
            string formatted = $"/ts?mod=addresses&cmd=save" +
                               $"&id={address.Address_ID}" +
                               $"&notes_private={address.Notes_private}";

            return(formatted.Replace(" ", "+").Replace(",", "%2C"));
        }
        public static string GeocodeAddress(AlbaAddressImport address)
        {
            string countryCode = "us";

            if (string.IsNullOrEmpty(address.Country))
            {
                address.Country = "United States";
            }

            string formatted = $"streetName={address.Address}&municipality={address.City}&countrySubDivision={address.Province}&postalCode={address.Postal_code}&countryCode={countryCode}";

            formatted = formatted.Replace(",", "%2C").Replace(" ", "+");
            return($"/search/address/structured/json?{formatted}");
        }
Example #5
0
        public static string GeocodeAddress(AlbaAddressImport address)
        {
            if (string.IsNullOrEmpty(address.Country))
            {
                address.Country = "United States";
            }

            string formatted = $"street={address.Address}&city={address.City}&state={address.Province}&postalcode={address.Postal_code}";

            //&country={address.Country}";
            formatted = formatted.Replace(",", "%2C").Replace(" ", "+");
            return($"search?"
                   + $"{formatted}"
                   + $"&format=json");
        }
Example #6
0
        public static string ImportAddress(AlbaAddressImport address)
        {
            string formatted = $"/ts?id=r1&mod=import&cmd=add" +
                               $"&Address_ID={address.Address_ID}" +
                               $"&Territory_ID={address.Territory_ID}" +
                               $"&Language={address.Language}" +
                               $"&Status={address.Status}" +
                               $"&Name={address.Name}" +
                               $"&Suite={address.Suite}" +
                               $"&Address={address.Address}" +
                               $"&City={address.City}" +
                               $"&Province={address.Province}" +
                               $"&Postal_code={address.Postal_code}" +
                               $"&Country={address.Country}" +
                               $"&Latitude={address.Latitude}" +
                               $"&Longitude={address.Longitude}" +
                               $"&Telephone={address.Telephone}" +
                               $"&Notes={address.Notes}" +
                               $"&Notes_private={address.Notes_private}";

            return(formatted.Replace(" ", "+").Replace(",", "%2C"));
        }
        public static PhoneNumberAddResults AddPhoneNumbers1And2(
            IEnumerable <AddressCsv> numbers,
            IEnumerable <AlbaAddressExport> addresses,
            int territoryId = 0)
        {
            var output = new List <AlbaAddressImport>();
            var map    = addresses.ToDictionary(a => (int)a.Address_ID);

            var errors = new List <AddressCsv>();

            foreach (var number in numbers)
            {
                if (!map.ContainsKey((int)number.Address_ID))
                {
                    errors.Add(number);
                    continue;
                }

                var address = map[(int)number.Address_ID];

                address.Notes_private += AppendAsLine(
                    address.Notes_private,
                    $"List-Service-Added-Date: {DateTime.Now:yyyy-MM-dd}");

                string exsistingTelephone = string.IsNullOrWhiteSpace(address.Telephone)
                    ? "NONE"
                    : address.Telephone;

                string phone1 = string.IsNullOrWhiteSpace(number.Phone1)
                    ? "NONE"
                    : number.Phone1;

                string phone2 = string.IsNullOrWhiteSpace(number.Phone2)
                    ? "NONE"
                    : number.Phone2;

                string tel = string.IsNullOrWhiteSpace(address.Telephone)
                    ? "NONE"
                    : address.Telephone;

                address.Notes_private += AppendAsLine(
                    address.Notes_private,
                    $"List-Service-Existing-Telephone: {tel}");

                address.Notes_private += AppendAsLine(
                    address.Notes_private,
                    $"List-Service-Phone1: {phone1}");

                address.Notes_private += AppendAsLine(
                    address.Notes_private,
                    $"List-Service-Phone2: {phone2}");

                address.Notes_private += AppendAsLine(
                    address.Notes_private,
                    $"List-Service-Source-Territory-Number: {address.Territory_number}");

                // Delete duplicates
                if (AreEqual(address.Telephone, number.Phone1))
                {
                    number.Phone1 = null;
                }

                // Delete duplicates
                if (AreEqual(address.Telephone, number.Phone2) ||
                    AreEqual(number.Phone1, number.Phone2))
                {
                    number.Phone2 = null;
                }

                if (territoryId > 0 &&
                    (!string.IsNullOrWhiteSpace(number.Phone1) ||
                     !string.IsNullOrWhiteSpace(number.Phone2)))
                {
                    address.Territory_ID = territoryId;
                }

                // Shift Phone2 to Phone1
                if (string.IsNullOrWhiteSpace(number.Phone1))
                {
                    number.Phone1 = number.Phone2;
                    number.Phone2 = null;
                }

                // Shift Phone1 to Telephone
                if (string.IsNullOrWhiteSpace(address.Telephone))
                {
                    address.Telephone = number.Phone1;
                    number.Phone1     = number.Phone2;
                    number.Phone2     = null;
                }

                if (!string.IsNullOrWhiteSpace(number.Phone1))
                {
                    address.Notes += AppendAsLine(
                        address.Notes,
                        $"Extra-Phone-1: { number.Phone1}");
                }

                if (!string.IsNullOrWhiteSpace(number.Phone2))
                {
                    address.Notes += AppendAsLine(
                        address.Notes,
                        $"Extra-Phone-2: { number.Phone2}");
                }

                var addressSaveData = AlbaAddressImport.From(address);

                output.Add(addressSaveData);
            }

            return(new PhoneNumberAddResults
            {
                SuccessfulAddresses = output,
                Errors = errors
            });
        }