Exemplo n.º 1
0
        /// <summary>
        /// Forespørsel sendt fra Virksomhet for å hente endringer fra Oppslagstjenesten.
        /// </summary>
        /// <param name="fraEndringsNummer">Brukes i endringsforespørsler for å hente alle endringer fra og med et bestemt endringsNummer.</param>
        /// <param name="informasjonsbehov">Beskriver det opplysningskrav som en Virksomhet har definert. Du kan angi fler behov f.eks Informasjonsbehov.Kontaktinfo | Informasjonsbehov.SikkerDigitalPost.</param>
        public EndringerSvar HentEndringer(long fraEndringsNummer, Informasjonsbehov informasjonsbehov)
        {
            var envelope  = new EndringerEnvelope(_instillinger, fraEndringsNummer, informasjonsbehov);
            var validator = SendEnvelope(envelope);

            validator.Valider();
            return(new EndringerSvar(validator.ResponseDocument));
        }
        /// <summary>
        ///     Forespørsel sendt fra Virksomhet for å hente endringer fra Oppslagstjenesten.
        /// </summary>
        /// <param name="fraEndringsNummer">
        ///     Brukes i endringsforespørsler for å hente alle endringer fra og med et bestemt endringsnummer.
        /// </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 <EndringerSvar> HentEndringerAsynkront(long fraEndringsNummer, params Informasjonsbehov[] informasjonsbehov)
        {
            var requestEnvelope = new EndringerEnvelope(OppslagstjenesteKonfigurasjon.Avsendersertifikat, OppslagstjenesteKonfigurasjon.SendPåVegneAv, fraEndringsNummer, informasjonsbehov);

            Log.Debug($"HentEndringerAsynkront(fraEndringsNummer:{fraEndringsNummer} , informasjonsbehov:{string.Join(", ", informasjonsbehov)})");

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

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

            return(DtoConverter.ToDomainObject(dtoObject));
        }
            public void Initializes_fields()
            {
                //Arrange
                var senderUnitTestCertificate = DomainUtility.GetSenderSelfSignedCertificate();

                const string sendOnBehalfOf   = "sendPåVegneAv";
                const int    fromChangeNumber = 0;
                var          informationNeed  = new[] { Informasjonsbehov.Person, Informasjonsbehov.Kontaktinfo };

                //Act
                var envelope = new EndringerEnvelope(senderUnitTestCertificate, sendOnBehalfOf, fromChangeNumber, informationNeed);

                //Assert
                Assert.NotNull(envelope.Settings.BinarySecurityId);
                Assert.NotNull(envelope.Settings.BodyId);
                Assert.NotNull(envelope.Settings.TimestampId);
                Assert.Equal(envelope.FraEndringsNummer, fromChangeNumber);
                Assert.Equal(envelope.Informasjonsbehov, informationNeed);
                Assert.Equal(envelope.SendOnBehalfOf, sendOnBehalfOf);
                Assert.Equal(envelope.SenderCertificate, senderUnitTestCertificate);

                Assert.NotNull(envelope.XmlDocument);
            }