public static Address FromXmlType(AdresseType oio) { if (oio != null && oio.Item != null) { var ret = new Address() { AddressId = Guid.NewGuid(), IsUnknown = oio.Item.UkendtAdresseIndikator, Note = oio.Item.NoteTekst }; if (oio.Item is DanskAdresseType) { ret.DenmarkAddress = DenmarkAddress.FromXmlType(oio.Item as DanskAdresseType); } else if (oio.Item is GroenlandAdresseType) { ret.DenmarkAddress = DenmarkAddress.FromXmlType(oio.Item as GroenlandAdresseType); } else if (oio.Item is VerdenAdresseType) { ret.ForeignAddress = ForeignAddress.FromXmlType(oio.Item as VerdenAdresseType); } return(ret); } return(null); }
public static AdresseType ToXmlType(Address db) { if (db != null) { var ret = new AdresseType() { Item = null, }; if (db.DenmarkAddress != null) { ret.Item = DenmarkAddress.ToXmlType(db.DenmarkAddress); } else if (db.ForeignAddress != null) { ret.Item = ForeignAddress.ToXmlType(db.ForeignAddress); } if (ret != null) { ret.Item.NoteTekst = db.Note; ret.Item.UkendtAdresseIndikator = db.IsUnknown; } return(ret); } return(null); }
public void Importer(AddressData address) { // create ShortKey and Uuid if not supplied EnsureKeys(address); log.Debug("Attempting Import on Address with uuid " + address.Uuid); // create timestamp object to be used on all registrations, properties and relations VirkningType virkning = helper.GetVirkning(address.Timestamp); // setup registration RegistreringType1 registration = helper.CreateRegistration(address.Timestamp, LivscyklusKodeType.Importeret); // add properties helper.AddProperties(address.AddressText, address.ShortKey, virkning, registration); // wire everything together AdresseType addresseType = helper.GetAdresseType(address.Uuid, registration); ImportInputType inportInput = new ImportInputType(); inportInput.Adresse = addresseType; // construct request importerRequest request = new importerRequest(); request.ImporterRequest1 = new ImporterRequestType(); request.ImporterRequest1.ImportInput = inportInput; request.ImporterRequest1.AuthorityContext = new AuthorityContextType(); request.ImporterRequest1.AuthorityContext.MunicipalityCVR = OrganisationRegistryProperties.GetMunicipality(); // send request AdressePortType channel = StubUtil.CreateChannel <AdressePortType>(AdresseStubHelper.SERVICE, "Importer", helper.CreatePort()); try { importerResponse response = channel.importer(request); int statusCode = Int32.Parse(response.ImporterResponse1.ImportOutput.StandardRetur.StatusKode); if (statusCode != 20) { if (statusCode == 49) // object already exists is the most likely scenario here { // TODO: a better approach would be to try the read-then-update-if-exists-else-create approach we use elsewhere log.Info("Skipping import on Address " + address.Uuid + " as Organisation returned status 49. The most likely cause is that the object already exists"); return; } string message = StubUtil.ConstructSoapErrorMessage(statusCode, "Import", AdresseStubHelper.SERVICE, response.ImporterResponse1.ImportOutput.StandardRetur.FejlbeskedTekst); log.Error(message); throw new SoapServiceException(message); } log.Debug("Import successful on Address with uuid " + address.Uuid); } catch (Exception ex) when(ex is CommunicationException || ex is IOException || ex is TimeoutException || ex is WebException) { throw new ServiceNotFoundException("Failed to establish connection to the Importer service on Adresse", ex); } }
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); }
internal AdresseType GetAdresseType(string uuid, RegistreringType1 registration) { AdresseType organisationType = new AdresseType(); organisationType.UUIDIdentifikator = uuid; RegistreringType1[] registreringTypes = new RegistreringType1[1]; registreringTypes[0] = registration; organisationType.Registrering = registreringTypes; return(organisationType); }
public List <SoegObjektType> ToSoegObjektTypes(String name, String address) { List <NavnStrukturType> navnStrukturTypes = new List <NavnStrukturType>(); List <SoegObjektType> soegObjekts = new List <SoegObjektType>(); if (name != "" && name.Split(' ').Length == 1) { for (int i = 0; i < 3; i++) { navnStrukturTypes.Add(ToNavnStrukturType(name, i)); } } else { navnStrukturTypes.Add(ToNavnStrukturType(name)); } foreach (NavnStrukturType navnStrukturType in navnStrukturTypes) { AdresseType addressObject = ToAddressType(address); if (navnStrukturType == null && addressObject == null) { return(null); } SoegAttributListeType soegAttributListeType = new SoegAttributListeType(); // Now fill Egenskab & registerOplysning SoegEgenskabType soegEgenskabType = new SoegEgenskabType(); soegEgenskabType.NavnStruktur = navnStrukturType; soegAttributListeType.SoegEgenskab = new SoegEgenskabType[] { soegEgenskabType }; if (addressObject != null) { RegisterOplysningType registerOplysningType = new RegisterOplysningType(); CprBorgerType cprBorgerType = new CprBorgerType(); cprBorgerType.FolkeregisterAdresse = addressObject; registerOplysningType.Item = cprBorgerType; soegAttributListeType.SoegRegisterOplysning = new RegisterOplysningType[] { registerOplysningType }; } SoegObjektType soegObjekt = new SoegObjektType(); soegObjekt.SoegAttributListe = soegAttributListeType; soegObjekts.Add(soegObjekt); } return(soegObjekts); }
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); }
private AdresseType getAdresseType(IAddress address) { AdresseType ret = new AdresseType(); switch (address.addressType()) { case EAddressType.Danish: ret = getAdresseType(address as IDanishAddress); break; default: ret = null; break; } return(ret); }
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); }
public SoegObjektType AddressToSoegObjekt(IAddress address) { if (address == null) { return(null); } SoegAttributListeType soegAttributListeType = new SoegAttributListeType(); // Now fill Egenskab & registerOplysning SoegEgenskabType soegEgenskabType = new SoegEgenskabType(); soegEgenskabType.NavnStruktur = null; soegAttributListeType.SoegEgenskab = new SoegEgenskabType[] { soegEgenskabType }; if (address != null) { RegisterOplysningType registerOplysningType = new RegisterOplysningType(); CprBorgerType cprBorgerType = new CprBorgerType(); AdresseType addressObject = getAdresseType(address); if (addressObject == null) { return(null); } cprBorgerType.FolkeregisterAdresse = addressObject; registerOplysningType.Item = cprBorgerType; soegAttributListeType.SoegRegisterOplysning = new RegisterOplysningType[] { registerOplysningType }; } SoegObjektType soegObjekt = new SoegObjektType(); soegObjekt.SoegAttributListe = soegAttributListeType; return(soegObjekt); }
public AdresseType ToAddressType(String addressString) { try { // Prepare addressString // Since DAWA cannot understand "12 B" as a houseNumber, only "12B" we will combine addresses like this. addressString = Regex.Replace(addressString, @"(^[^0-9]+[0-9]+)[ ]?([a-zæøåA-ZÆØÅ])", "$1$2"); // Lookup the address as a query to Dawa addressString = System.Web.HttpUtility.UrlEncode(addressString); String urlString = "http://dawa.aws.dk/adresser?q=" + addressString; var client = new System.Net.Http.HttpClient(); var responseTask = client.GetStringAsync(urlString); responseTask.Wait(); var adresses = Newtonsoft.Json.JsonConvert.DeserializeObject <JArray>(responseTask.Result); // Extract address data if (adresses.Count > 0) { adresses = new JArray(adresses.First); String streetName = null, houseNumber = null, floor = null, door = null, districtSubdivision = null, postCode = null, postDistrict = null; streetName = GetString(adresses, "adgangsadresse/vejstykke/navn"); houseNumber = GetString(adresses, "adgangsadresse/husnr"); floor = GetString(adresses, "etage"); door = GetString(adresses, "dør"); districtSubdivision = GetString(adresses, "adgangsadresse/supplerendebynavn"); postCode = GetString(adresses, "adgangsadresse/postnummer/nr"); postDistrict = GetString(adresses, "adgangsadresse/postnummer/navn"); AdresseType ret = new AdresseType() { Item = new DanskAdresseType() { PostDistriktTekst = postDistrict, AddressComplete = new AddressCompleteType() { AddressAccess = new AddressAccessType() { StreetBuildingIdentifier = houseNumber }, AddressPostal = new AddressPostalType() { StreetName = streetName, FloorIdentifier = floor, SuiteIdentifier = door, DistrictSubdivisionIdentifier = districtSubdivision, PostCodeIdentifier = postCode, DistrictName = postDistrict, } } } }; return(ret); } } catch (Exception ex) { Logger.LogException(ex); } return(null); }