Esempio n. 1
0
        //Gebaseerd op adres, stad en postcode returned deze methode een SimpleWaypoint van die plek in longtitude en latitude
        public async Task <SimpleWaypoint> AdressToCoor(string street, int houseNumber, string city, string postalCode)
        {
            GeocodeRequest geocode = new GeocodeRequest();
            SimpleAddress  address = new SimpleAddress();

            address.AddressLine = street + houseNumber;
            address.Locality    = city;
            address.PostalCode  = postalCode;

            geocode.Address     = address;
            geocode.BingMapsKey = bingMapKey;

            var response = await geocode.Execute();

            if (response != null &&
                response.ResourceSets != null &&
                response.ResourceSets.Length > 0 &&
                response.ResourceSets[0].Resources != null &&
                response.ResourceSets[0].Resources.Length > 0)
            {
                Location       result   = response.ResourceSets[0].Resources[0] as BingMapsRESTToolkit.Location;
                SimpleWaypoint waypoint = new SimpleWaypoint(result.GeocodePoints[1].Coordinates[0], result.GeocodePoints[1].Coordinates[1]);
                return(waypoint);
            }

            return(null);
        }
 private static Dto.AddressType MapAddress(SimpleAddress address)
 {
     return(new Dto.AddressType
     {
         Item = new Dto.SimpleAddressType
         {
             additionalAddressDetail = address.AddtionalAddressDetail.Value,
             city = address.City.Value,
             countryCode = address.Country.Alpha2Code,
             postalCode = address.PostalCode.Value,
             region = address.Region?.Value
         }
     });
 }
Esempio n. 3
0
        internal static async Task <Location> GetCurrentCoordinates(string currentAddressLine, string currentPostalCode)
        {
            var currentLocationCoordinates = new Location {
                Type = "Point"
            };
            var currentAddress = new SimpleAddress {
                AddressLine = currentAddressLine, PostalCode = currentPostalCode
            };

            var geocodeRequest = new GeocodeRequest()
            {
                Address             = currentAddress,
                IncludeIso2         = true,
                IncludeNeighborhood = true,
                MaxResults          = 25,
                BingMapsKey         = BingMapsKey
            };
            var response = await geocodeRequest.Execute();

            if (response != null &&
                response.ResourceSets != null &&
                response.ResourceSets.Length > 0 &&
                response.ResourceSets[0].Resources != null &&
                response.ResourceSets[0].Resources.Length > 0)
            {
                var result = response.ResourceSets[0].Resources[0] as BingMapsRESTToolkit.Location;

                var coords = result.Point.Coordinates;
                if (coords != null && coords.Length == 2)
                {
                    var lat = coords[0];
                    var lng = coords[1];

                    Console.WriteLine($"Geocode Results - Lat: {lat} / Long: {lng}");
                    currentLocationCoordinates.Coordinates.Add(lat);
                    currentLocationCoordinates.Coordinates.Add(lng);
                }
            }

            return(currentLocationCoordinates);
        }
        /// <summary>
        /// Called by the ASP.NET page framework to notify server controls that use composition-based implementation to create any child controls they contain in preparation for posting back or rendering.
        /// </summary>
        protected override void CreateChildControls()
        {
            // Ensure there is an address
            if (this.Address == null)
            {
                return;
            }

            // Ensure we use the "adr" class for the "adr" microformat
            this.CssClass = (this.CssClass += " adr").TrimStart();

            // Create a copy of the address so we can correct the case without affecting the external properties
            BS7666Address addrCopy = new BS7666Address(String.IsNullOrEmpty(this.Address.Paon) ? String.Empty : this.Address.Paon.Trim(),
                                                       String.IsNullOrEmpty(this.Address.Saon) ? String.Empty : this.Address.Saon.Trim(),
                                                       String.IsNullOrEmpty(this.Address.StreetName) ? String.Empty : this.Address.StreetName.Trim(),
                                                       String.IsNullOrEmpty(this.Address.Locality) ? String.Empty : this.Address.Locality.Trim(),
                                                       String.IsNullOrEmpty(this.Address.Town) ? String.Empty : this.Address.Town.Trim(),
                                                       String.IsNullOrEmpty(this.Address.AdministrativeArea) ? String.Empty : this.Address.AdministrativeArea.Trim(),
                                                       String.IsNullOrEmpty(this.Address.Postcode) ? String.Empty : this.Address.Postcode.Trim());

            if (addrCopy.StreetName != null && addrCopy.StreetName.ToUpper(CultureInfo.CurrentCulture) == addrCopy.StreetName)
            {
                addrCopy.StreetName = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(addrCopy.StreetName.ToLower(CultureInfo.CurrentCulture));
            }
            if (addrCopy.Locality != null && addrCopy.Locality.ToUpper(CultureInfo.CurrentCulture) == addrCopy.Locality)
            {
                addrCopy.Locality = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(addrCopy.Locality.ToLower(CultureInfo.CurrentCulture));
            }
            if (addrCopy.Town != null && addrCopy.Town.ToUpper(CultureInfo.CurrentCulture) == addrCopy.Town)
            {
                addrCopy.Town = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(addrCopy.Town.ToLower(CultureInfo.CurrentCulture));
            }
            if (addrCopy.AdministrativeArea != null && addrCopy.AdministrativeArea.ToUpper(CultureInfo.CurrentCulture) == addrCopy.AdministrativeArea)
            {
                addrCopy.AdministrativeArea = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(addrCopy.AdministrativeArea.ToLower(CultureInfo.CurrentCulture));
            }

            // Add space to postcode if missing
            if (addrCopy.Postcode != null && addrCopy.Postcode.IndexOf(" ", StringComparison.Ordinal) == -1)
            {
                if (addrCopy.Postcode.Length == 6)
                {
                    addrCopy.Postcode = addrCopy.Postcode.Substring(0, 3) + " " + addrCopy.Postcode.Substring(3, 3);
                }
                else if (addrCopy.Postcode.Length == 7)
                {
                    addrCopy.Postcode = addrCopy.Postcode.Substring(0, 4) + " " + addrCopy.Postcode.Substring(4, 3);
                }
            }


            // Create a presentational address based on PAF rules for a Simple Address

            // 1st line of simple address contains the SAON, if there is one
            bool hasSaon = (addrCopy.Saon != null && addrCopy.Saon.Trim().Length > 0);

            if (hasSaon)
            {
                using (HtmlGenericControl saon = new HtmlGenericControl("span"))
                {
                    saon.Attributes["class"] = "extended-address"; // adr
                    saon.InnerHtml           = HighlightFormat1Name(addrCopy.Saon);
                    this.Controls.Add(saon);
                    this.Controls.Add(new LiteralControl(Separator));
                }
            }

            if (!hasSaon && !SimpleAddress.IsFormat1Name(addrCopy.Paon))
            {
                // If PAON is more than just a number and line one still spare, we have enough lines
                // to put PAON and street address on their own separate lines (1st line and 2nd line)
                if (addrCopy.Paon.Trim().Length > 0)
                {
                    using (HtmlGenericControl paon = new HtmlGenericControl("span"))
                    {
                        paon.Attributes["class"] = "street-address"; // adr
                        paon.InnerHtml           = HighlightFormat1Name(addrCopy.Paon);
                        this.Controls.Add(paon);
                        this.Controls.Add(new LiteralControl(Separator));
                    }
                }

                if (addrCopy.StreetName.Trim().Length > 0)
                {
                    using (HtmlGenericControl street = new HtmlGenericControl("span"))
                    {
                        street.Attributes["class"] = "street-address"; // adr
                        street.InnerHtml           = HighlightFormat1Name(addrCopy.StreetName);
                        this.Controls.Add(street);
                        this.Controls.Add(new LiteralControl(Separator));
                    }
                }
            }
            else
            {
                // If line 1 used by SAON, or PAON is just a number, cram PAON and StreetName onto one line
                using (HtmlGenericControl street = new HtmlGenericControl("span"))
                {
                    street.Attributes["class"] = "street-address"; // adr

                    bool hasPaon = (addrCopy.Paon != null && addrCopy.Paon.Length > 0);
                    if (hasPaon && addrCopy.StreetName != null && addrCopy.StreetName.Length > 0)
                    {
                        if (Regex.IsMatch(this.Address.Paon, "^[0-9]{1,2}[-/]?[0-9]{0,2}[A-Z]?$", RegexOptions.IgnoreCase))
                        {
                            street.InnerHtml = String.Format(CultureInfo.CurrentCulture, "{0} {1}", HighlightFormat1Name(addrCopy.Paon), HighlightFormat1Name(addrCopy.StreetName));
                        }
                        else
                        {
                            street.InnerHtml = String.Format(CultureInfo.CurrentCulture, "{0}, {1}", HighlightFormat1Name(addrCopy.Paon), HighlightFormat1Name(addrCopy.StreetName));
                        }
                    }
                    if (hasPaon && (addrCopy.StreetName == null || addrCopy.StreetName.Length == 0))
                    {
                        street.InnerHtml = HighlightFormat1Name(addrCopy.Paon);
                    }
                    else if ((addrCopy.Paon == null || addrCopy.Paon.Length == 0) && (addrCopy.StreetName != null && addrCopy.StreetName.Length > 0))
                    {
                        street.InnerHtml = HighlightFormat1Name(addrCopy.StreetName);
                    }

                    if (street.InnerText.Length > 0)
                    {
                        this.Controls.Add(street);
                        this.Controls.Add(new LiteralControl(Separator));
                    }
                }
            }

            // 3rd line of simple address contains the locality
            if (addrCopy.Locality != null && addrCopy.Locality.Trim().Length > 0)
            {
                using (HtmlGenericControl locality = new HtmlGenericControl("span"))
                {
                    locality.Attributes["class"] = "street-address"; // adr
                    locality.InnerText           = addrCopy.Locality;
                    this.Controls.Add(locality);
                    this.Controls.Add(new LiteralControl(Separator));
                }
            }

            // 4th line of simple address contains the town
            if (addrCopy.Town != null && addrCopy.Town.Trim().Length > 0)
            {
                using (HtmlGenericControl town = new HtmlGenericControl("span"))
                {
                    town.Attributes["class"] = "locality"; // adr
                    town.InnerText           = addrCopy.Town;
                    this.Controls.Add(town);
                    this.Controls.Add(new LiteralControl(Separator));
                }
            }

            // 5th line of simple address contains administrative area and postcode
            bool hasAdministrativeArea = (addrCopy.AdministrativeArea != null && addrCopy.AdministrativeArea.Trim().Length > 0);
            bool hasPostcode           = (addrCopy.Postcode != null && addrCopy.Postcode.Trim().Length > 0);

            if (hasAdministrativeArea)
            {
                using (HtmlGenericControl administrativeArea = new HtmlGenericControl("span"))
                {
                    administrativeArea.Attributes["class"] = "region"; // adr
                    administrativeArea.InnerText           = addrCopy.AdministrativeArea;
                    this.Controls.Add(administrativeArea);
                }
            }
            if (hasAdministrativeArea && hasPostcode)
            {
                this.Controls.Add(new LiteralControl(" "));
            }
            if (hasPostcode)
            {
                using (HtmlGenericControl postcode = new HtmlGenericControl("span"))
                {
                    postcode.Attributes["class"] = "postal-code"; // adr
                    postcode.InnerText           = addrCopy.Postcode;
                    this.Controls.Add(postcode);
                }
            }

            // Ensure we don't end with a separator
            if (this.Controls.Count > 1)
            {
                while (this.Controls[this.Controls.Count - 1].GetType() == typeof(LiteralControl))
                {
                    this.Controls.Remove(this.Controls[this.Controls.Count - 1]);
                }
            }

            // Ensure the control isn't visible if it has no content
            if (this.Controls.Count == 0)
            {
                this.Visible = false;
            }
        }
 public CustomerInfo(TaxPayerId taxpayerId, Name name, SimpleAddress address)
     : base(taxpayerId, name, address)
 {
 }