Example #1
0
        internal static Dokumentpakke GetDokumentpakkeMedFlereVedlegg(int antall = 3)
        {
            var dokumentpakke = new Dokumentpakke(GetHoveddokumentEnkel());

            dokumentpakke.LeggTilVedlegg(GetVedlegg(antall));
            return(dokumentpakke);
        }
        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);
        }
Example #3
0
        internal static Dokumentpakke GetDokumentpakkeWithMultipleVedlegg(int antall = 3)
        {
            var dokumentpakke = new Dokumentpakke(GetHoveddokumentSimple());

            dokumentpakke.LeggTilVedlegg(GetVedlegg(antall));
            return(dokumentpakke);
        }
Example #4
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);
            }
            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);
            }
        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 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)
                                                       );
            }
Example #8
0
        public void OpprettForsendelseMedUtvidelse()
        {
            var raw = "<?xml version=\"1.0\" encoding=\"utf-8\"?><lenke xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns=\"http://begrep.difi.no/sdp/utvidelser/lenke\"><url>https://www.test.no</url><beskrivelse lang=\"nb\">This was raw string</beskrivelse></lenke>";

            MetadataDocument metadataDocument = new MetadataDocument("lenke.xml", "application/vnd.difi.dpi.lenke", raw);

            Avsender      avsender      = null; //Som initiert tidligere
            PostInfo      postInfo      = null; //Som initiert tidligere
            Dokumentpakke dokumentpakke = null; //Som initiert tidligere
            var           forsendelse   = new Forsendelse(avsender, postInfo, dokumentpakke)
            {
                MetadataDocument = metadataDocument
            };
        }
        private static Forsendelse GenererForsendelse(Avsender avsender, PostInfo postInfo)
        {
            ResourceUtility resourceUtility = new ResourceUtility("Difi.SikkerDigitalPost.Klient.Testklient.Resources");

            var hoveddokument = resourceUtility.ReadAllBytes(true, "Hoveddokument.pdf");
            var vedlegg       = resourceUtility.ReadAllBytes(true, "Vedlegg.txt");

            //Forsendelse
            var dokumentpakke =
                new Dokumentpakke(new Dokument("Sendt" + DateTime.Now, hoveddokument, "application/pdf", "NO",
                                               "OWASP TOP 10.pdf"));

            dokumentpakke.LeggTilVedlegg(new Dokument("Vedlegg", vedlegg, "text/plain", "NO", "Vedlegg.txt"));
            return(new Forsendelse(avsender, postInfo, dokumentpakke, Prioritet.Prioritert, MpcId, "NO"));
        }
Example #10
0
        public async Task <Transportkvittering> SendMessage(StandardBusinessDocument standardBusinessDocument,
                                                            Dokumentpakke dokumentpakke, MetadataDocument metadataDocument)
        {
            var openRequestUri = new Uri(ClientConfiguration.Miljø.Url, "/api/messages/out/");
            var putRequestUri  = new Uri(openRequestUri, $"{standardBusinessDocument.GetConversationId()}");

            JsonSerializerOptions jsonSerializerOptions = new JsonSerializerOptions
            {
                IgnoreNullValues = true,
            };

            string json = JsonSerializer.Serialize(standardBusinessDocument, standardBusinessDocument.GetType(), jsonSerializerOptions);

            JObject sbdobj = JObject.Parse(json);

            sbdobj.Add(standardBusinessDocument.any is DigitalForretningsMelding ? "digital" : "print", sbdobj["any"]);
            sbdobj.Remove("any");

            string        newjson = sbdobj.ToString();
            StringContent content = new StringContent(newjson, Encoding.UTF8, "application/json");

            try
            {
                await CreateMessage(content, openRequestUri);

                await addDocument(dokumentpakke.Hoveddokument, putRequestUri);

                if (metadataDocument != null)
                {
                    await addDocument(metadataDocument, putRequestUri);
                }

                foreach (Dokument vedlegg in dokumentpakke.Vedlegg)
                {
                    await addDocument(vedlegg, putRequestUri);
                }

                await CloseMessage(putRequestUri);

                return(new TransportOkKvittering());
            }
            catch (TransportFeiletException e)
            {
                _logger.LogError($"Feil ifbm opprettelse av forsendelse mot integrasjonspunkt: {e.TransportFeiletKvittering.ToString()}");
                return(e.TransportFeiletKvittering);
            }
        }
            public void SuccessfullySetsLanguageOnDocumentsWithNoLanguageCodeFromMessage()
            {
                //Arrange
                var sender = DomainUtility.GetAvsender();
                var simpleDigitalPostInfo = DomainUtility.GetDigitalPostInfoSimple();

                string undefinedLanguageCode = null;
                var    primaryDocument       = new Dokument("Tiitle", new byte[3], "application/pdf", undefinedLanguageCode);
                var    documentBundle        = new Dokumentpakke(primaryDocument);
                var    definedLanguageCode   = "en";

                documentBundle.LeggTilVedlegg(new Dokument("Appendix", new byte[2], "application/pdf", definedLanguageCode));

                var messageLanguageCode = "no";
                //Act
                var forsendelse = new Forsendelse(sender, simpleDigitalPostInfo, documentBundle, Prioritet.Normal, "mpcId", messageLanguageCode);

                //Assert
                Assert.Equal(messageLanguageCode, documentBundle.Hoveddokument.Språkkode);
                Assert.Equal(definedLanguageCode, documentBundle.Vedlegg.First().Språkkode);
            }
Example #12
0
        internal static Dokumentpakke GetDokumentpakkeUtenVedlegg()
        {
            var dokumentpakke = new Dokumentpakke(GetHoveddokumentEnkel());

            return(dokumentpakke);
        }