Exemplo n.º 1
0
        // POST api/internalconnections
        public List <BeregnetRuteInternalDto> Post([FromBody] Forsendelse value)
        {
            List <BeregnetRuteInternalDto> brds = new List <BeregnetRuteInternalDto>();

            Forsendelse f = new Forsendelse
            {
                Forsendelsesdato = value.Forsendelsesdato,
                Fra              = value.Fra,
                Til              = value.Til,
                Godstype         = value.Godstype,
                PakkeDimensioner = value.PakkeDimensioner,
                Rekommanderet    = value.Rekommanderet,
                Vaegt            = value.Vaegt
            };

            // do something and return data
            BeregnetRuteInternalDto brd = new BeregnetRuteInternalDto();

            brd.Forsendelse = f;
            brd.SamletTid   = 18;
            brd.Andel       = 43;
            brd.SamletPris  = 321.5f;
            brds.Add(brd);

            return(brds);
        }
Exemplo n.º 2
0
        /// <summary>
        ///     Sender en <see cref="Forsendelse" /> til Meldingsformidler.
        /// </summary>
        /// <param name="forsendelse">
        ///     All informasjon, klar til å kunne sendes (mottakerinformasjon, sertifikater,
        ///     vedlegg mm), enten digitalt eller fysisk.
        /// </param>
        public async Task <Transportkvittering> SendAsync(Forsendelse forsendelse)
        {
            StandardBusinessDocument standardBusinessDocument = SBDForsendelseBuilder.BuildSBD(Databehandler, forsendelse);

            return(await RequestHelper.SendMessage(standardBusinessDocument, forsendelse.Dokumentpakke,
                                                   forsendelse.MetadataDocument));
        }
Exemplo n.º 3
0
        /// <summary>
        /// Sender en forsendelse til meldingsformidler. Dersom noe feilet i sendingen til meldingsformidler, vil det kastes en exception.
        /// </summary>
        /// <param name="forsendelse">Et objekt som har all informasjon klar til å kunne sendes (mottakerinformasjon, sertifikater, vedlegg mm), enten digitalt eller fysisk.</param>
        /// <param name="lagreDokumentpakke">Hvis satt til true, så lagres dokumentpakken på Klientkonfigurasjon.StandardLoggSti.</param>
        public async Task <Transportkvittering> SendAsync(Forsendelse forsendelse, bool lagreDokumentpakke = false)
        {
            Logging.Log(TraceEventType.Information, forsendelse.KonversasjonsId, "Sender ny forsendelse til meldingsformidler.");

            var guidHandler = new GuidUtility();

            var arkiv = LagAsicEArkiv(forsendelse, lagreDokumentpakke, guidHandler);

            var forretningsmeldingEnvelope = LagForretningsmeldingEnvelope(forsendelse, arkiv, guidHandler);

            Logg(TraceEventType.Verbose, forsendelse.KonversasjonsId, arkiv.Signatur.Xml().OuterXml, true, true, "Sendt - Signatur.xml");
            Logg(TraceEventType.Verbose, forsendelse.KonversasjonsId, arkiv.Manifest.Xml().OuterXml, true, true, "Sendt - Manifest.xml");
            Logg(TraceEventType.Verbose, forsendelse.KonversasjonsId, forretningsmeldingEnvelope.Xml().OuterXml, true, true, "Sendt - Envelope.xml");

            try
            {
                ValiderForretningsmeldingEnvelope(forretningsmeldingEnvelope.Xml());
                ValiderArkivManifest(arkiv.Manifest.Xml());
                ValiderArkivSignatur(arkiv.Signatur.Xml());
            }
            catch (Exception e)
            {
                throw new Exception("Sending av forsendelse feilet under validering. Feilmelding: " + e.GetBaseException(), e.InnerException);
            }

            var soapContainer            = LagSoapContainer(forretningsmeldingEnvelope, arkiv);
            var meldingsformidlerRespons = await SendSoapContainer(soapContainer);

            Logg(TraceEventType.Verbose, forsendelse.KonversasjonsId, meldingsformidlerRespons, true, true, "Mottatt - Meldingsformidlerespons.txt");
            Logg(TraceEventType.Verbose, forsendelse.KonversasjonsId, new byte[1], true, false, "Sendt - SOAPContainer.txt");

            Logging.Log(TraceEventType.Information, forsendelse.KonversasjonsId, "Kvittering for forsendelse" + Environment.NewLine + meldingsformidlerRespons);

            return(ValiderTransportkvittering(meldingsformidlerRespons, forretningsmeldingEnvelope.Xml(), guidHandler));
        }
            public void HoveddokumentTittelSkalSettesIManifestet()
            {
                //Arrange
                var          resourceUtility     = new ResourceUtility("Difi.SikkerDigitalPost.Klient.Tester.testdata");
                const string hoveddokumentTittel = "hoveddokument tittel";
                var          dokument            = new Dokument(hoveddokumentTittel, resourceUtility.ReadAllBytes(true, "hoveddokument", "Hoveddokument.pdf"), "application/pdf");

                var vedlegg = new Dokument("vedlegg tittel", resourceUtility.ReadAllBytes(true, "hoveddokument", "Hoveddokument.pdf"),
                                           "application/pdf");

                var dokumentPakke = new Dokumentpakke(dokument);

                dokumentPakke.LeggTilVedlegg(vedlegg);

                var message = new Forsendelse(DomainUtility.GetAvsender(), DomainUtility.GetDigitalPostInfoWithTestCertificate(), dokumentPakke, Prioritet.Normal, Guid.NewGuid().ToString());

                var manifestXml      = new Manifest(message).Xml();
                var namespaceManager = new XmlNamespaceManager(manifestXml.NameTable);

                namespaceManager.AddNamespace("ns9", NavneromUtility.DifiSdpSchema10);
                namespaceManager.AddNamespace("ds", NavneromUtility.XmlDsig);
                //Act

                //Assert
                var vedleggNodeInnerText = manifestXml.DocumentElement.SelectSingleNode("//ns9:hoveddokument",
                                                                                        namespaceManager).InnerText;

                Assert.Equal(hoveddokumentTittel, vedleggNodeInnerText);
            }
Exemplo n.º 5
0
        public void SendDigitaltPåVegneAvIntegrasjon()
        {
            //Arrange
            const string testDepartementetAvsenderOrgnummer = "987656789";
            const string postenDatabehandlerOrgnummer       = "984661185";
            var          avsender = new Avsender(testDepartementetAvsenderOrgnummer);

            var databehandler = new Databehandler(postenDatabehandlerOrgnummer, DomeneUtility.GetAvsenderSertifikat());
            var forsendelse   = new Forsendelse(avsender, DomeneUtility.GetDigitalPostInfoEnkel(), DomeneUtility.GetDokumentpakkeUtenVedlegg(), Prioritet.Normal, Guid.NewGuid().ToString());
            var klientKonfig  = new Klientkonfigurasjon
            {
                MeldingsformidlerUrl = new Uri(Settings.Default.UrlMeldingsformidler),
                LoggXmlTilFil        = true
            };

            //Act
            var sdpKlient           = new SikkerDigitalPostKlient(databehandler, klientKonfig);
            var transportkvittering = sdpKlient.Send(forsendelse, true);


            //Assert
            Assert.IsNotNull(transportkvittering);
            var kvittering = HentKvitteringOgBekreft(sdpKlient, "Send digital paa vegne av", forsendelse);

            Assert.IsTrue(kvittering is Leveringskvittering, "Klarte ikke hente kvittering eller feilet kvittering");
        }
            public void ConstructorGeneratesBytes()
            {
                //Arrange
                var message = new Forsendelse(DomainUtility.GetAvsender(), DomainUtility.GetDigitalPostInfoSimple(), DomainUtility.GetDokumentpakkeWithMultipleVedlegg());

                var asiceArchive = DomainUtility.GetAsiceArchive(message);

                //Act
                var archiveBytes = asiceArchive.UnencryptedBytes;

                //Assert
                using (var memoryStream = new MemoryStream(archiveBytes))
                {
                    using (var archive = new ZipArchive(memoryStream, ZipArchiveMode.Read))
                    {
                        Assert.True(archive.Entries.Any(entry => entry.FullName == "manifest.xml"));
                        Assert.True(archive.Entries.Any(entry => entry.FullName == "META-INF/signatures.xml"));
                        Assert.True(archive.Entries.Any(entry => entry.FullName == message.Dokumentpakke.Hoveddokument.Filnavn));

                        foreach (var document in message.Dokumentpakke.Vedlegg)
                        {
                            Assert.True(archive.Entries.Any(entry => entry.FullName == document.Filnavn));
                        }
                    }
                }
            }
 public void Prosesser(Forsendelse signatureJob, Stream bundleStream)
 {
     if (signatureJob == null || !bundleStream.CanRead)
     {
         throw new InvalidDataException("Properties not properly initialized in wrapping class.");
     }
 }
        public XmlDocument Xml()
        {
            if (_manifestXml != null)
            {
                return(_manifestXml);
            }

            _manifestXml = new XmlDocument {
                PreserveWhitespace = true
            };
            var xmlDeclaration = _manifestXml.CreateXmlDeclaration("1.0", "UTF-8", null);

            _manifestXml.AppendChild(_manifestXml.CreateElement("manifest", NavneromUtility.DifiSdpSchema10));
            _manifestXml.InsertBefore(xmlDeclaration, _manifestXml.DocumentElement);

            if (Forsendelse.Sendes(Postmetode.Digital))
            {
                _manifestXml.DocumentElement.AppendChild(MottakerNode());
            }

            _manifestXml.DocumentElement.AppendChild(AvsenderNode());

            var hoveddokument = Forsendelse.Dokumentpakke.Hoveddokument;

            _manifestXml.DocumentElement.AppendChild(DokumentNode(hoveddokument, "hoveddokument", hoveddokument.Tittel));

            foreach (var vedlegg in Forsendelse.Dokumentpakke.Vedlegg)
            {
                _manifestXml.DocumentElement.AppendChild(DokumentNode(vedlegg, "vedlegg", vedlegg.Filnavn));
            }

            Logging.Log(TraceEventType.Verbose, Forsendelse.KonversasjonsId, "Generert manifest for dokumentpakke" + Environment.NewLine + _manifestXml.OuterXml);

            return(_manifestXml);
        }
Exemplo n.º 9
0
            public void VedleggTittelSkalSettesIManifestet()
            {
                //Arrange
                //Arrange
                var resourceUtility = new ResourceUtility("Difi.SikkerDigitalPost.Klient.Tester.testdata");
                var dokument        = new Dokument("hoved", resourceUtility.ReadAllBytes(true, "hoveddokument", "Hoveddokument.pdf"), "application/pdf");
                var vedleggTittel   = "tittel";
                var vedlegg         = new Dokument(vedleggTittel, resourceUtility.ReadAllBytes(true, "hoveddokument", "Hoveddokument.pdf"),
                                                   "application/pdf");


                var dokumentPakke = new Dokumentpakke(dokument);

                dokumentPakke.LeggTilVedlegg(vedlegg);

                var enkelForsendelse = new Forsendelse(DomeneUtility.GetAvsender(), DomeneUtility.GetDigitalPostInfoEnkelMedTestSertifikat(), dokumentPakke, Prioritet.Normal, Guid.NewGuid().ToString());
                var asiceArkiv       = DomeneUtility.GetAsicEArkiv(enkelForsendelse);

                var manifestXml      = asiceArkiv.Manifest.Xml();
                var namespaceManager = new XmlNamespaceManager(manifestXml.NameTable);

                namespaceManager.AddNamespace("ns9", NavneromUtility.DifiSdpSchema10);
                namespaceManager.AddNamespace("ds", NavneromUtility.XmlDsig);
                //Act

                //Assert

                var vedleggNodeInnerText = manifestXml.DocumentElement.SelectSingleNode("//ns9:vedlegg",
                                                                                        namespaceManager).InnerText;

                Assert.AreEqual(vedleggTittel, vedleggNodeInnerText);
            }
Exemplo n.º 10
0
        private static ForretningsMelding BuildDigitalForretningsMelding(Forsendelse forsendelse)
        {
            DigitalForretningsMelding digitalForretningsMelding =
                new DigitalForretningsMelding(forsendelse.Dokumentpakke.Hoveddokument.Tittel);

            if (!(forsendelse.PostInfo is DigitalPostInfo digitalPostInfo))
            {
                throw new NullReferenceException("PostInfo må være en DigitalPostInfo");
            }

            digitalForretningsMelding.digitalPostInfo = new DigitalPostInfo
            {
                Virkningstidspunkt = digitalPostInfo.Virkningstidspunkt,
                Åpningskvittering  = digitalPostInfo.Åpningskvittering,
            };

            digitalForretningsMelding.tittel = digitalPostInfo.IkkeSensitivTittel;

            switch (forsendelse.Språkkode)
            {
            case "NO":
                digitalForretningsMelding.spraak = Språk.NO;
                break;

            case "NB":
                digitalForretningsMelding.spraak = Språk.NB;
                break;

            case "EN":
                digitalForretningsMelding.spraak = Språk.EN;
                break;

            default:
                throw new Exception("Ugyldig språk kode! Velg en av NO, NB eller EN.");
            }

            digitalForretningsMelding.sikkerhetsnivaa = digitalPostInfo.Sikkerhetsnivå;

            DigitaltVarsel digitaltVarsel = new DigitaltVarsel();

            if (digitalPostInfo.EpostVarsel != null)
            {
                digitaltVarsel.epostTekst = digitalPostInfo.EpostVarsel.Varslingstekst;
            }
            if (digitalPostInfo.SmsVarsel != null)
            {
                digitaltVarsel.smsTekst = digitalPostInfo.SmsVarsel.Varslingstekst;
            }

            digitalForretningsMelding.varsler = digitaltVarsel;


            if (forsendelse.MetadataDocument != null)
            {
                digitalForretningsMelding.addMetadataMapping(forsendelse.Dokumentpakke.Hoveddokument.Filnavn,
                                                             forsendelse.MetadataDocument.Filnavn);
            }

            return(digitalForretningsMelding);
        }
Exemplo n.º 11
0
        private static ForretningsMelding BuildFysiskForretningsMelding(Forsendelse forsendelse)
        {
            FysiskForretningsMelding fysiskForretningsMelding = new FysiskForretningsMelding();

            if (!(forsendelse.PostInfo is FysiskPostInfo fysiskPostInfo))
            {
                throw new NullReferenceException("PostInfo må være en FysiskPostInfo");
            }
            if (!(forsendelse.PostInfo.Mottaker is FysiskPostMottaker fysiskPostMottaker))
            {
                throw new NullReferenceException("Motakker må være en FysiskPostMotakker");
            }

            fysiskForretningsMelding.mottaker = fysiskPostMottaker;

            fysiskForretningsMelding.posttype = fysiskPostInfo.Posttype;

            fysiskForretningsMelding.returadresse = fysiskPostInfo.ReturpostMottaker.Adresse;

            fysiskForretningsMelding.utskriftsfarge = fysiskPostInfo.Utskriftsfarge;

            fysiskForretningsMelding.printinstruksjon =
                fysiskPostInfo.Printinstruksjoner.ToDictionary(p => p.Navn, p => p.Verdi);

            fysiskForretningsMelding.retur = new Retur
            {
                mottaker         = fysiskPostMottaker,
                returhaandtering = fysiskPostInfo.Posthåndtering
            };

            return(fysiskForretningsMelding);
        }
Exemplo n.º 12
0
            public void KonstruktørForIdentiskHash()
            {
                //Arrange
                var prioritet = Prioritet.Normal;
                var mpcId     = "mpcId";
                var språkkode = "NO";

                var konversasjonsid = Guid.NewGuid();
                var forsendelse     = new Forsendelse(
                    DomainUtility.GetAvsender(),
                    DomainUtility.GetDigitalPostInfoSimple(),
                    DomainUtility.GetDokumentpakkeWithoutAttachments(),
                    konversasjonsid,
                    prioritet,
                    mpcId,
                    språkkode);

                //Act

                //Assert

                Assert.Equal(konversasjonsid, forsendelse.KonversasjonsId);
                Assert.NotNull(forsendelse.Avsender);
                Assert.NotNull(forsendelse.PostInfo);
                Assert.NotNull(forsendelse.Dokumentpakke);
                Assert.Equal(prioritet, forsendelse.Prioritet);
                Assert.Equal(mpcId, forsendelse.MpcId);
                Assert.Equal(språkkode, forsendelse.Språkkode);
            }
            public void KonstruktørMedOptionalParametere()
            {
                //Arrange
                var prioritet = Prioritet.Normal;
                var mpcId     = "mpcId";
                var språkkode = "NO";

                var forsendelse = new Forsendelse(
                    DomeneUtility.GetAvsender(),
                    DomeneUtility.GetDigitalPostInfoEnkel(),
                    DomeneUtility.GetDokumentpakkeUtenVedlegg(),
                    prioritet,
                    mpcId,
                    språkkode
                    );


                //Act

                //Assert
                Assert.IsNotNull(forsendelse.Avsender);
                Assert.IsNotNull(forsendelse.PostInfo);
                Assert.IsNotNull(forsendelse.Dokumentpakke);
                Assert.AreEqual(prioritet, forsendelse.Prioritet);
                Assert.AreEqual(mpcId, forsendelse.MpcId);
                Assert.AreEqual(språkkode, forsendelse.Språkkode);
            }
Exemplo n.º 14
0
            public void KonstruktørMedOptionalParametere()
            {
                //Arrange
                var prioritet = Prioritet.Normal;
                var mpcId     = "mpcId";
                var språkkode = "NO";

                var forsendelse = new Forsendelse(
                    DomainUtility.GetAvsender(),
                    DomainUtility.GetDigitalPostInfoSimple(),
                    DomainUtility.GetDokumentpakkeWithoutAttachments(),
                    prioritet,
                    mpcId,
                    språkkode
                    );

                //Act

                //Assert
                Assert.NotNull(forsendelse.Avsender);
                Assert.NotNull(forsendelse.PostInfo);
                Assert.NotNull(forsendelse.Dokumentpakke);
                Assert.Equal(prioritet, forsendelse.Prioritet);
                Assert.Equal(mpcId, forsendelse.MpcId);
                Assert.Equal(språkkode, forsendelse.Språkkode);
            }
        public void OppretteForsendelse()
        {
            var hoveddokument = new Dokument(
                tittel: "Dokumenttittel",
                dokumentsti: "/Dokumenter/Hoveddokument.pdf",
                mimeType: "application/pdf",
                språkkode: "NO",
                filnavn: "filnavn"
                );

            var dokumentpakke = new Dokumentpakke(hoveddokument);

            var vedleggssti = "/Dokumenter/Vedlegg.pdf";
            var vedlegg     = new Dokument(
                tittel: "tittel",
                dokumentsti: vedleggssti,
                mimeType: "application/pdf",
                språkkode: "NO",
                filnavn: "filnavn");

            dokumentpakke.LeggTilVedlegg(vedlegg);

            Avsender avsender    = null; //Som initiert tidligere
            PostInfo postInfo    = null; //Som initiert tidligere
            var      forsendelse = new Forsendelse(avsender, postInfo, dokumentpakke);
        }
            public void KonstruktørForIdentiskHash()
            {
                //Arrange
                var prioritet = Prioritet.Normal;
                var mpcId = "mpcId";
                var språkkode = "NO";

                var konversasjonsid = Guid.NewGuid();
                Forsendelse forsendelse = new Forsendelse(
                    DomeneUtility.GetAvsender(),
                    DomeneUtility.GetDigitalPostInfoEnkel(),
                    DomeneUtility.GetDokumentpakkeUtenVedlegg(),
                    konversasjonsid,
                    prioritet,
                    mpcId,
                    språkkode);

                //Act

                //Assert

                Assert.AreEqual(konversasjonsid, forsendelse.KonversasjonsId);
                Assert.IsNotNull(forsendelse.Avsender);
                Assert.IsNotNull(forsendelse.PostInfo);
                Assert.IsNotNull(forsendelse.Dokumentpakke);
                Assert.AreEqual(prioritet, forsendelse.Prioritet);
                Assert.AreEqual(mpcId, forsendelse.MpcId);
                Assert.AreEqual(språkkode, forsendelse.Språkkode);
            }
Exemplo n.º 17
0
        public static StandardBusinessDocument BuildSBD(Databehandler databehandler, Forsendelse forsendelse)
        {
            ForretningsMelding forretningsMelding = ForretningsMeldingBuilder.BuildForretningsMelding(forsendelse);

            var konversasjonsId = forsendelse.KonversasjonsId.ToString();

            StandardBusinessDocumentHeader sbdHeader = new StandardBusinessDocumentHeader.Builder()
                                                       .WithProcess(Process.ProcessType.DIGITAL_POST_VEDTAK)
                                                       .WithStandard(forsendelse.PostInfo.Type)
                                                       .WithFrom(databehandler.Organisasjonsnummer)
                                                       .WithOnBehalfOf(forsendelse.Avsender.Organisasjonsnummer)
                                                       .WithTo(forsendelse.MottakerPersonIdentifikator)
                                                       .WithType(forretningsMelding.type.ToString())
                                                       .WithRelatedToConversationId(konversasjonsId)
                                                       .WithRelatedToMessageId(konversasjonsId)
                                                       .WithCreationDateAndTime(DateTime.Now.ToLocalTime())
                                                       .Build();

            StandardBusinessDocument sbd = new StandardBusinessDocument
            {
                standardBusinessDocumentHeader = sbdHeader, any = forretningsMelding
            };

            return(sbd);
        }
            public void KonstruktørMedOptionalParametere()
            {
                //Arrange
                var prioritet = Prioritet.Normal;
                var mpcId = "mpcId";
                var språkkode = "NO";

                Forsendelse forsendelse = new Forsendelse(
                    DomeneUtility.GetAvsender(),
                    DomeneUtility.GetDigitalPostInfoEnkel(),
                    DomeneUtility.GetDokumentpakkeUtenVedlegg(),
                    prioritet,
                    mpcId,
                    språkkode
                    );

                //Act

                //Assert
                Assert.IsNotNull(forsendelse.Avsender);
                Assert.IsNotNull(forsendelse.PostInfo);
                Assert.IsNotNull(forsendelse.Dokumentpakke);
                Assert.AreEqual(prioritet, forsendelse.Prioritet);
                Assert.AreEqual(mpcId, forsendelse.MpcId);
                Assert.AreEqual(språkkode, forsendelse.Språkkode);
            }
        /// <summary>
        ///     Sender en <see cref="Forsendelse" /> til Meldingsformidler.
        /// </summary>
        /// <param name="forsendelse">
        ///     All informasjon, klar til å kunne sendes (mottakerinformasjon, sertifikater,
        ///     vedlegg mm), enten digitalt eller fysisk.
        /// </param>
        public async Task <Transportkvittering> SendAsync(Forsendelse forsendelse)
        {
            var guidUtility = new GuidUtility();

            Log.Debug($"Utgående forsendelse, conversationId '{forsendelse.KonversasjonsId}', messageId '{guidUtility.MessageId}'.");

            var documentBundle             = AsiceGenerator.Create(forsendelse, guidUtility, Databehandler.Sertifikat, Klientkonfigurasjon);
            var forretningsmeldingEnvelope = new ForretningsmeldingEnvelope(new EnvelopeSettings(forsendelse, documentBundle, Databehandler, guidUtility, Klientkonfigurasjon));

            ValidateEnvelopeAndThrowIfInvalid(forretningsmeldingEnvelope, forretningsmeldingEnvelope.GetType().Name);

            var transportReceipt = (Transportkvittering)await RequestHelper.SendMessage(forretningsmeldingEnvelope, documentBundle).ConfigureAwait(false);

            transportReceipt.AntallBytesDokumentpakke = documentBundle.BillableBytes;
            var transportReceiptXml = transportReceipt.Xml;

            if (transportReceipt is TransportOkKvittering)
            {
                Log.Debug($"{transportReceipt}");

                var responsvalidator = new ResponseValidator(forretningsmeldingEnvelope.Xml(), transportReceiptXml, CertificateValidationProperties);
                responsvalidator.ValidateTransportReceipt(guidUtility);
            }
            else
            {
                Log.Error($"{transportReceipt}");
            }

            return(transportReceipt);
        }
Exemplo n.º 20
0
        private static async Task <Kvittering> HentKvitteringOgBekreftAsync(SikkerDigitalPostKlient sdpKlient, string testBeskrivelse,
                                                                            Forsendelse forsendelse)
        {
            const int hentKvitteringMaksAntallGanger = 10;
            var       hentKvitteringPåNytt           = true;
            var       prøvdPåNytt = 0;

            Kvittering kvittering = null;

            while (hentKvitteringPåNytt && (prøvdPåNytt++ <= hentKvitteringMaksAntallGanger))
            {
                Thread.Sleep(500);
                var kvitteringsforespørsel = new Kvitteringsforespørsel(forsendelse.Prioritet, forsendelse.MpcId);
                kvittering = await sdpKlient.HentKvitteringAsync(kvitteringsforespørsel);

                if (kvittering is TomKøKvittering)
                {
                    continue;
                }

                hentKvitteringPåNytt = false;

                await sdpKlient.BekreftAsync((Forretningskvittering)kvittering);

                var konversasjonsId = HentKonversasjonsIdFraKvittering(kvittering);
                if (konversasjonsId != forsendelse.KonversasjonsId)
                {
                    throw new FieldAccessException(
                              $"Fikk ikke til å hente kvittering for test '{testBeskrivelse}' -- det ble hentet feil kvittering eller ingen kvittering. Var du for rask å hente, " +
                              "eller har noe skjedd galt med hvilken kø du henter fra?");
                }
            }
            return(kvittering);
        }
Exemplo n.º 21
0
 /// <summary>
 ///     Settings for DigitalPostForsendelse
 /// </summary>
 public EnvelopeSettings(Forsendelse forsendelse, DocumentBundle documentBundle, Databehandler databehandler, GuidUtility guidUtility, Klientkonfigurasjon konfigurasjon)
 {
     Forsendelse    = forsendelse;
     DocumentBundle = documentBundle;
     Databehandler  = databehandler;
     GuidUtility    = guidUtility;
     Konfigurasjon  = konfigurasjon;
 }
Exemplo n.º 22
0
 /// <summary>
 ///     Settings for DigitalPostForsendelse
 /// </summary>
 public EnvelopeSettings(Forsendelse forsendelse, AsicEArkiv asicEArkiv, Databehandler databehandler, GuidUtility guidHandler, Klientkonfigurasjon konfigurasjon)
 {
     Forsendelse   = forsendelse;
     AsicEArkiv    = asicEArkiv;
     Databehandler = databehandler;
     GuidHandler   = guidHandler;
     Konfigurasjon = konfigurasjon;
 }
 public void Prosesser(Forsendelse forsendelse, Stream bundleStream)
 {
     LastFileProcessed = FileNameWithTimeStamp(forsendelse.KonversasjonsId.ToString());
     using (var fileStream = File.Create(Path.Combine(Directory, LastFileProcessed)))
     {
         bundleStream.CopyTo(fileStream);
     }
 }
        public AsicEArkiv(Forsendelse forsendelse, GuidUtility guidHandler, X509Certificate2 avsenderSertifikat)
        {
            Manifest = new Manifest(forsendelse);
            Signatur = new Signatur(forsendelse, Manifest, avsenderSertifikat);

            _forsendelse   = forsendelse;
            _dokumentpakke = _forsendelse.Dokumentpakke;
            _guidHandler   = guidHandler;
        }
        public void Prosesser(Forsendelse forsendelse, Stream bundleStream)
        {
            Initialposition = bundleStream.Position;

            CouldReadBytesStream = bundleStream.CanRead;
            StreamLength         = bundleStream.Length;

            DoSomeStreamMessing(bundleStream);
        }
Exemplo n.º 26
0
        private ForretningsmeldingEnvelope LagForretningsmeldingEnvelope(Forsendelse forsendelse, AsicEArkiv arkiv,
                                                                         GuidUtility guidHandler)
        {
            var forretningsmeldingEnvelope =
                new ForretningsmeldingEnvelope(new EnvelopeSettings(forsendelse, arkiv, _databehandler, guidHandler,
                                                                    _klientkonfigurasjon));

            return(forretningsmeldingEnvelope);
        }
Exemplo n.º 27
0
        public ActionResult Index(Forsendelse ff)
        {
            ff.Forsendelsesdato = new DateTime();

            RuteberegningService rbs = new RuteberegningService();

            rbs.GetBeregnedeRuter(ff);

            return(View(ff));
        }
        public SmokeTestsHelper Create_digital_forsendelse_with_different_sender()
        {
            _forsendelse          = DomainUtility.GetForsendelseSimple();
            _forsendelse.Avsender = new Avsender(new Organisasjonsnummer("984661185"))
            {
                Avsenderidentifikator = "digipost"
            };

            return(this);
        }
Exemplo n.º 29
0
        public static ForretningsMelding BuildForretningsMelding(Forsendelse forsendelse)
        {
            var forretningsMelding = forsendelse.PostInfo is DigitalPostInfo
                ? BuildDigitalForretningsMelding(forsendelse)
                : BuildFysiskForretningsMelding(forsendelse);

            forretningsMelding.hoveddokument    = forsendelse.Dokumentpakke.Hoveddokument.Filnavn;
            forretningsMelding.avsenderId       = forsendelse.Avsender.Avsenderidentifikator == string.Empty ? null : forsendelse.Avsender.Avsenderidentifikator;
            forretningsMelding.fakturaReferanse = forsendelse.Avsender.Fakturareferanse;
            return(forretningsMelding);
        }
Exemplo n.º 30
0
        private AsicEArkiv LagAsicEArkiv(Forsendelse forsendelse, bool lagreDokumentpakke, GuidUtility guidHandler)
        {
            var arkiv = new AsicEArkiv(forsendelse, guidHandler, _databehandler.Sertifikat);

            if (lagreDokumentpakke)
            {
                arkiv.LagreTilDisk(_klientkonfigurasjon.StandardLoggSti, "dokumentpakke",
                                   DateUtility.DateForFile() + " - Dokumentpakke.zip");
            }
            return(arkiv);
        }
Exemplo n.º 31
0
        public IEnumerable <Forbindelse> GetCombinedForbindelser(Forsendelse forsendelse)
        {
            var oceanicForbindelser   = ConvertToForbindelser(connectionsIntegration.GetOceanicRoutes(forsendelse), Enums.Forbindelsestype.Oceanic);
            var eastIndiaForbindelser = ConvertToForbindelser(connectionsIntegration.GetEastIndiaTradingRoutes(forsendelse), Enums.Forbindelsestype.EastIndia);

            var possibleForbindelser = GetPossibleTelstarForbindelser(forsendelse).Select(f => f as Forbindelse);

            possibleForbindelser = possibleForbindelser.Concat(oceanicForbindelser);
            possibleForbindelser = possibleForbindelser.Concat(eastIndiaForbindelser);

            return(possibleForbindelser);
        }
            public void ThrowsExceptionOnInvalidManifest()
            {
                //Arrange
                const string invalidFileNameNotFourCharacters = "T";
                var          asiceConfiguration       = new Klientkonfigurasjon(Miljø.FunksjoneltTestmiljø);
                var          dokumentpakkeUtenVedlegg = new Dokumentpakke(new Dokument("", new byte[3], "application/pdf", "nb", invalidFileNameNotFourCharacters));
                var          forsendelse = new Forsendelse(new Avsender(new Organisasjonsnummer("123456789")), DomainUtility.GetDigitalPostInfoSimple(), dokumentpakkeUtenVedlegg, Guid.NewGuid());

                //Act
                Assert.Throws <XmlValidationException>(() =>
                                                       AsiceGenerator.Create(forsendelse, new GuidUtility(), DomainUtility.GetAvsenderCertificate(), asiceConfiguration)
                                                       );
            }
            public void EnkelKonstruktør()
            {
                //Arrange
                Forsendelse forsendelse = new Forsendelse(
                    DomeneUtility.GetAvsender(),
                    DomeneUtility.GetDigitalPostInfoEnkel(),
                    DomeneUtility.GetDokumentpakkeUtenVedlegg()
                    );

                //Act

                //Assert
                Assert.IsNotNull(forsendelse.Avsender);
                Assert.IsNotNull(forsendelse.PostInfo);
                Assert.IsNotNull(forsendelse.Dokumentpakke);
            }