예제 #1
0
            public void Initializes_fields()
            {
                //Arrange
                var          senderUnitTestCertificate = DomainUtility.GetSenderSelfSignedCertificate();
                const string sendOnBehalfOf            = "sendPåVegneAv";
                var          persons         = new[] { "12312312312", "32132132132" };
                var          informationNeed = new[] { Informasjonsbehov.Person, Informasjonsbehov.Kontaktinfo };

                //Act
                var envelope = new PersonsEnvelope(senderUnitTestCertificate, sendOnBehalfOf, persons, informationNeed);

                //Assert
                Assert.NotNull(envelope.Settings.BinarySecurityId);
                Assert.NotNull(envelope.Settings.BodyId);
                Assert.NotNull(envelope.Settings.TimestampId);
                Assert.Equal(envelope.PersonId, persons);
                Assert.Equal(envelope.InformationNeeds, informationNeed);
                Assert.Equal(envelope.SendOnBehalfOf, sendOnBehalfOf);
                Assert.Equal(envelope.SenderCertificate, senderUnitTestCertificate);

                Assert.NotNull(envelope.XmlDocument);
            }
        /// <summary>
        ///     Forespørsel sendt fra Virksomhet for å hente Personer fra Oppslagstjenesten.
        /// </summary>
        /// <param name="personidentifikatorer">
        ///     Identifikasjon av en person. Personidentifikator er et fødselsnummer eller et gyldig D-nummer.
        /// </param>
        /// <param name="informasjonsbehov">
        ///     Beskriver det opplysningskrav som en Virksomhet har definert. Du kan angi flere behov, som for eksempel
        ///     <see cref="Informasjonsbehov.Kontaktinfo" /> eller <see cref="Informasjonsbehov.VarslingsStatus" />.
        /// </param>
        public async Task <IEnumerable <Person> > HentPersonerAsynkront(string[] personidentifikatorer, params Informasjonsbehov[] informasjonsbehov)
        {
            var requestEnvelope = new PersonsEnvelope(OppslagstjenesteKonfigurasjon.Avsendersertifikat, OppslagstjenesteKonfigurasjon.SendPåVegneAv, personidentifikatorer, informasjonsbehov);

            var maskertePersonIdentifikatorer = string.Join(", ", personidentifikatorer.Select(p => p.Substring(0, 6) + "*****"));

            Log.Debug($"HentPersonerAsynkront(personidentifikator:{maskertePersonIdentifikatorer} , informasjonsbehov:{string.Join(", ", informasjonsbehov)}");

            if (RequestAndResponseLog.IsDebugEnabled && OppslagstjenesteKonfigurasjon.LoggForespørselOgRespons)
            {
                RequestAndResponseLog.Debug(requestEnvelope.XmlDocument.OuterXml);
            }
            var responseDocument = await GetClient().SendAsync(requestEnvelope).ConfigureAwait(false);

            if (RequestAndResponseLog.IsDebugEnabled && OppslagstjenesteKonfigurasjon.LoggForespørselOgRespons)
            {
                RequestAndResponseLog.Debug(responseDocument.Envelope.InnerXml);
            }
            var dtoObject    = ValidateAndConvertToDtoObject <HentPersonerRespons>(requestEnvelope, responseDocument);
            var domainObject = DtoConverter.ToDomainObject(dtoObject);

            return(domainObject.Personer);
        }