internal void AddOrganisationRelation(string organisationUUID, VirkningType virkning, RegistreringType1 registration) { UnikIdType orgReference = StubUtil.GetReference <UnikIdType>(organisationUUID, ItemChoiceType.UUIDIdentifikator); OrganisationRelationType organisationRelationType = new OrganisationRelationType(); organisationRelationType.Virkning = virkning; organisationRelationType.ReferenceID = orgReference; registration.RelationListe.Tilhoerer = organisationRelationType; }
public List <string> Soeg(string antal = null, string offset = null) { OrganisationEnhedPortType channel = StubUtil.CreateChannel <OrganisationEnhedPortType>(OrganisationEnhedStubHelper.SERVICE, "Soeg", helper.CreatePort()); SoegInputType1 soegInput = new SoegInputType1(); soegInput.AttributListe = new AttributListeType(); soegInput.RelationListe = new RelationListeType(); soegInput.TilstandListe = new TilstandListeType(); if (antal != null) { soegInput.MaksimalAntalKvantitet = antal; } if (offset != null) { soegInput.FoersteResultatReference = offset; } // only search for Active units soegInput.TilstandListe.Gyldighed = new GyldighedType[1]; soegInput.TilstandListe.Gyldighed[0] = new GyldighedType(); soegInput.TilstandListe.Gyldighed[0].GyldighedStatusKode = GyldighedStatusKodeType.Aktiv; // TODO: these three lines should be removeable once KMD fixes their end soegInput.TilstandListe.Gyldighed[0].Virkning = new VirkningType(); soegInput.TilstandListe.Gyldighed[0].Virkning.FraTidspunkt = new TidspunktType(); soegInput.TilstandListe.Gyldighed[0].Virkning.FraTidspunkt.Item = DateTime.Now; // only return objects that have a Tilhører relationship top-level Organisation UnikIdType orgReference = StubUtil.GetReference <UnikIdType>(registry.MunicipalityOrganisationUUID[OrganisationRegistryProperties.GetCurrentMunicipality()], ItemChoiceType.UUIDIdentifikator); OrganisationRelationType organisationRelationType = new OrganisationRelationType(); organisationRelationType.ReferenceID = orgReference; soegInput.RelationListe.Tilhoerer = organisationRelationType; // search soegRequest request = new soegRequest(); request.SoegRequest1 = new SoegRequestType(); request.SoegRequest1.SoegInput = soegInput; request.SoegRequest1.AuthorityContext = new AuthorityContextType(); request.SoegRequest1.AuthorityContext.MunicipalityCVR = OrganisationRegistryProperties.GetCurrentMunicipality(); try { soegResponse response = channel.soeg(request); int statusCode = Int32.Parse(response.SoegResponse1.SoegOutput.StandardRetur.StatusKode); if (statusCode != 20 && statusCode != 44) // 44 is empty search result { string message = StubUtil.ConstructSoapErrorMessage(statusCode, "Soeg", OrganisationEnhedStubHelper.SERVICE, response.SoegResponse1.SoegOutput.StandardRetur.FejlbeskedTekst); log.Error(message); throw new SoapServiceException(message); } List <string> functions = new List <string>(); if (statusCode == 20) { foreach (string id in response.SoegResponse1.SoegOutput.IdListe) { functions.Add(id); } } return(functions); } 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 Soeg service on OrganisationEnhed", ex); } }