예제 #1
0
        public DanskAdresseType ToDanskAdresseType()
        {
            var ret = new DanskAdresseType()
            {
                AddressComplete = this.ToAddressCompleteType(),
                // No address point for persons
                AddressPoint = null,
                // No address note
                NoteTekst = null,
                // No political districts
                PolitiDistriktTekst = null,
                // Set post district
                PostDistriktTekst = this.PostDistrict,
                // No school district
                SkoleDistriktTekst = null,
                // No social disrict
                SocialDistriktTekst = null,
                // No church district
                SogneDistriktTekst = null,
                // Assumed as high road code
                SpecielVejkodeIndikator = ToSpecielVejkodeIndikator(),
                // Always true because SpecielVejkodeIndikator is always set
                SpecielVejkodeIndikatorSpecified = true,
                // Always false
                UkendtAdresseIndikator = false,
                // No election district
                ValgkredsDistriktTekst = null
            };

            return(ret);
        }
예제 #2
0
        public AdresseType ToAddressType(String addressString)
        {
            try
            {
                addressString = HttpUtility.UrlEncode(addressString, Encoding.UTF8);
                String urlString     = "http://dawa.aws.dk/adresser?q=" + addressString;
                var    url           = new Uri(urlString);
                var    responseBytes = new System.Net.WebClient().DownloadData(url);
                var    charset       = Encoding.UTF8;
                String response      = charset.GetString(responseBytes);

                JArray adresses = JArray.Parse(response);

                if (adresses.Count > 0)
                {
                    String streetName = null, houseNumber = null, floor = null, door = null, districtSubdivision = null, postCode = null, postDistrict = null;

                    streetName          = GetString(adresses[0], "adgangsadresse/vejstykke/navn");
                    houseNumber         = GetString(adresses[0], "adgangsadresse/husnr");
                    floor               = GetString(adresses[0], "etage");
                    door                = GetString(adresses[0], "dør");
                    districtSubdivision = GetString(adresses[0], "adgangsadresse/supplerendebynavn");
                    postCode            = GetString(adresses[0], "adgangsadresse/postnummer/nr");
                    postDistrict        = GetString(adresses[0], "adgangsadresse/postnummer/navn");

                    AdresseType      ret          = new AdresseType();
                    DanskAdresseType danskAdresse = new DanskAdresseType();
                    danskAdresse.PostDistriktTekst = postDistrict;
                    ret.Item = danskAdresse;

                    AddressCompleteType addressComplete = new AddressCompleteType();
                    danskAdresse.AddressComplete = addressComplete;

                    AddressAccessType addressAccess = new AddressAccessType();
                    addressAccess.StreetBuildingIdentifier = houseNumber;
                    addressComplete.AddressAccess          = addressAccess;

                    AddressPostalType addressPostal = new AddressPostalType();
                    addressPostal.StreetName      = streetName;
                    addressPostal.FloorIdentifier = floor;
                    addressPostal.SuiteIdentifier = door;
                    addressPostal.DistrictSubdivisionIdentifier = districtSubdivision;
                    addressPostal.PostCodeIdentifier            = postCode;
                    addressPostal.DistrictName    = postDistrict;
                    addressComplete.AddressPostal = addressPostal;

                    return(ret);
                }
            }
            catch (Exception ex)
            {
                cpreader.Logger.error(ex);
            }
            return(null);
        }
예제 #3
0
        public AdresseType ToAddressType(String addressString)
        {
            String comma = "((\\s+)|(\\s*[,;\\.]{1,2}\\s*))";
            String pat   = "(?<streetName>[^0-9]+)" + comma
                           + "(?<houseNumber>[0-9]+[a-zA-Z]*)" + comma
                           + "(" + "(?<floor>([0-9]{1,2})|st)?(\\.)?(sal)?" + comma + ")?"
                           + "(" + "(?<door>[a-zA-Z]+)" + comma + ")?"
                           + "(?<postCode>[0-9]{4})" + comma
                           + "(?<postDistrict>\\p{L}+(\\s+\\p{L}+)*)\\Z";

            Match m = Regex.Match(addressString, pat);

            if (m.Success)
            {
                String streetName = null, houseNumber = null, floor = null, door = null, postCode = null, postDistrict = null;

                streetName   = m.Groups["streetName"].Value;
                houseNumber  = m.Groups["houseNumber"].Value;
                floor        = m.Groups["floor"].Value;
                door         = m.Groups["door"].Value;
                postCode     = m.Groups["postCode"].Value;
                postDistrict = m.Groups["postDistrict"].Value;

                AdresseType      ret          = new AdresseType();
                DanskAdresseType danskAdresse = new DanskAdresseType();
                danskAdresse.PostDistriktTekst = postDistrict;
                ret.Item = danskAdresse;

                AddressCompleteType addressComplete = new AddressCompleteType();
                danskAdresse.AddressComplete = addressComplete;

                AddressAccessType addressAccess = new AddressAccessType();
                addressAccess.StreetBuildingIdentifier = houseNumber;
                addressComplete.AddressAccess          = addressAccess;

                AddressPostalType addressPostal = new AddressPostalType();
                addressPostal.StreetName         = streetName;
                addressPostal.FloorIdentifier    = floor;
                addressPostal.SuiteIdentifier    = door;
                addressPostal.PostCodeIdentifier = postCode;
                addressPostal.DistrictName       = postDistrict;
                addressComplete.AddressPostal    = addressPostal;

                return(ret);
            }
            return(null);
        }
        public DanskAdresseType ToDanskAdresseType()
        {
            var ret = new DanskAdresseType()
            {
                AddressComplete = this.ToAddressCompleteType(),

                // No address point for persons
                AddressPoint = this.ToAddressPointType(),

                NoteTekst = ToAddressNoteTekste(),

                // No political districts
                PolitiDistriktTekst = null,

                // TODO: Lookup post district
                PostDistriktTekst = null,

                // No school district
                SkoleDistriktTekst = null,

                // No social disrict
                SocialDistriktTekst = null,

                // No church district - checked
                SogneDistriktTekst = null,

                // Assuming this is the same as high road code - verified
                SpecielVejkodeIndikator = this.ToSpecielVejkodeIndikator(),

                // Always true because SpecielVejkodeIndikator is always set
                SpecielVejkodeIndikatorSpecified = true,

                // Address is unknown if it is empty :)
                // TODO: Make sure that a historical address is never empty
                UkendtAdresseIndikator = false,

                // No election district - checked
                ValgkredsDistriktTekst = null
            };

            return(ret);
        }
예제 #5
0
        private AdresseType getAdresseType(IDanishAddress address)
        {
            String streetName = null, houseNumber = null, floor = null, door = null, districtSubdivision = null, postCode = null, postDistrict = null;

            streetName          = address.streetName();
            houseNumber         = address.streetBuilding();
            floor               = address.floor();
            door                = address.suite();
            districtSubdivision = address.districtSubdivision();
            postCode            = address.postCode();
            postDistrict        = address.postDistrikt();

            AdresseType ret = new AdresseType();

            DanskAdresseType danskAdresse = new DanskAdresseType();

            danskAdresse.PostDistriktTekst = postDistrict;
            ret.Item = danskAdresse;

            AddressCompleteType addressComplete = new AddressCompleteType();

            danskAdresse.AddressComplete = addressComplete;

            AddressAccessType addressAccess = new AddressAccessType();

            addressAccess.StreetBuildingIdentifier = houseNumber;
            addressComplete.AddressAccess          = addressAccess;

            AddressPostalType addressPostal = new AddressPostalType();

            addressPostal.StreetName      = streetName;
            addressPostal.FloorIdentifier = floor;
            addressPostal.SuiteIdentifier = door;
            addressPostal.DistrictSubdivisionIdentifier = districtSubdivision;
            addressPostal.PostCodeIdentifier            = postCode;
            addressPostal.DistrictName    = postDistrict;
            addressComplete.AddressPostal = addressPostal;

            return(ret);
        }
예제 #6
0
 public static DanishAddress FromXmlType(DanskAdresseType oio)
 {
     return(new DanishAddress()
     {
         DenmarkAddress = new DenmarkAddress()
         {
             CountryRef = CountryRef.FromXmlType(oio.AddressComplete.AddressPostal.CountryIdentificationCode),
             DistrictName = oio.AddressComplete.AddressPostal.DistrictName,
             SpecialRoadCode = oio.SpecielVejkodeIndikator,
             StreetBuildingIdentifier = oio.AddressComplete.AddressPostal.StreetBuildingIdentifier,
             StreetCode = oio.AddressComplete.AddressAccess.StreetCode,
             StreetName = oio.AddressComplete.AddressPostal.StreetName,
             StreetNameForAddressing = oio.AddressComplete.AddressPostal.StreetNameForAddressingName,
             DistrictSubdivisionIdentifier = oio.AddressComplete.AddressPostal.DistrictSubdivisionIdentifier,
             MailDeliverySublocation = oio.AddressComplete.AddressPostal.MailDeliverySublocationIdentifier,
             MunicipalityCode = oio.AddressComplete.AddressAccess.MunicipalityCode,
             FloorIdentifier = oio.AddressComplete.AddressPostal.FloorIdentifier,
             PostCodeIdentifier = oio.AddressComplete.AddressPostal.PostCodeIdentifier,
             SuiteIdentifier = oio.AddressComplete.AddressPostal.SuiteIdentifier,
             Address = new Address()
             {
                 //TODO: Fill
                 IsUnknown = false,
                 Note = null,
             }
         },
         AddressPoint = oio.AddressPoint != null?AddressPoint.FromXmlType(oio.AddressPoint) : null as AddressPoint,
                            ConstituencyDistrict = oio.ValgkredsDistriktTekst,
                            ParishDistrict = oio.SogneDistriktTekst,
                            PoliceDistrict = oio.PolitiDistriktTekst,
                            PostDistrict = oio.PostDistriktTekst,
                            PostOfficeBoxIdentifier = oio.AddressComplete.AddressPostal.PostOfficeBoxIdentifier,
                            SchoolDistrict = oio.SkoleDistriktTekst,
                            SocialDistrict = oio.SocialDistriktTekst,
     });
 }