示例#1
0
        public void WriteXmlSignedThrowsOnMissingPfxFile()
        {
            var f = Fattura.CreateInstance(Instance.Privati);

            Assert.ThrowsException <FatturaElettronicaSignatureException>(() =>
                                                                          f.WriteXmlSigned("Samples/notreally.pfx", "idsrv3test", "Samples/IT02182030391_32.xml.p7m"));
        }
示例#2
0
        public void ReadXMLSignedFallbacksToBase64Attempt()
        {
            var f = Fattura.CreateInstance(Instance.Privati);

            f.ReadXmlSigned("Samples/IT02182030391_31.Base64.xml.p7m");
            Assert.AreEqual("31", f.FatturaElettronicaHeader.DatiTrasmissione.ProgressivoInvio);
        }
        static void Main(string[] args)
        {
            var fattura = Fattura.CreateInstance(Instance.Privati);

            // Lettura diretta da XML (senza necessità di uno stream aperto)
            fattura.ReadXml("IT02182030391_32.xml");

            // Firma digitale del file xml con file pfx
            fattura.WriteXmlSigned("idsrv3test.pfx", "idsrv3test", "IT02182030391_32.xml.pm7");

            // Legge file con firma digitale
            fattura.ReadXmlSigned("IT02182030391_31.xml.p7m");

            // Scrive direttamente su XML (senza necessità passare uno stream)
            fattura.WriteXml("Copia di IT02182030391_31.xml");

            // Serializza fattura in JSON.
            var json = fattura.ToJson();

            var copia = Fattura.CreateInstance(Instance.Privati);

            // Deserializza da JSON
            copia.FromJson(json);
            // Le due fatture sono uguali.
            Console.WriteLine($"{fattura.FatturaElettronicaHeader.DatiTrasmissione.CodiceDestinatario}");
            Console.WriteLine($"{copia.FatturaElettronicaHeader.DatiTrasmissione.CodiceDestinatario}");

            GetNextFileName();
        }
示例#4
0
        public void ReadSignedFile()
        {
            var f = Fattura.CreateInstance(Instance.Privati);

            f.ReadXmlSigned("Samples/IT02182030391_31.xml.p7m");
            Assert.AreEqual("31", f.Header.DatiTrasmissione.ProgressivoInvio);
        }
        public void ReadXMLStream()
        {
            var f = Fattura.CreateInstance(Instance.Privati);

            f.ReadXml(File.OpenRead("Samples/IT02182030391_32.xml"));
            Assert.AreEqual("32", f.FatturaElettronicaHeader.DatiTrasmissione.ProgressivoInvio);
        }
示例#6
0
        private void button1_Click(object sender, EventArgs e)
        {
            var f    = Fattura.CreateInstance(Instance.PubblicaAmministrazione);
            var form = new FatturaElettronicaForm();

            form.FatturaElettronica = f;
            form.ShowDialog();
        }
示例#7
0
        private Fattura Deserialize(byte[] b)
        {
            var f = Fattura.CreateInstance(Instance.Privati);

            f.ReadXml(b);

            return(f);
        }
示例#8
0
        public void ReadXMLSignedBase64ValidateSignatureDisabled()
        {
            // TODO: ideally we'd need a .p7m with an invalid signature in order
            // to properly test this.

            var f = Fattura.CreateInstance(Instance.Privati);

            f.ReadXmlSignedBase64("Samples/IT02182030391_31.Base64.xml.p7m", validateSignature: false);
            Assert.AreEqual("31", f.FatturaElettronicaHeader.DatiTrasmissione.ProgressivoInvio);
        }
示例#9
0
        public void WriteXmlSigned()
        {
            if (File.Exists("Samples/IT02182030391_32.xml.p7m"))
            {
                File.Delete("Samples/IT02182030391_32.xml.p7m");
            }
            var f = Fattura.CreateInstance(Instance.Privati);

            f.WriteXmlSigned("Samples/idsrv3test.pfx", "idsrv3test", "Samples/IT02182030391_32.xml.p7m");
            Assert.IsTrue(File.Exists("Samples/IT02182030391_32.xml.p7m"));
        }
示例#10
0
        private void button1_Click(object sender, EventArgs e)
        {
            var f = Fattura.CreateInstance(Instance.Privati);

            f.FatturaElettronicaHeader.DatiTrasmissione.CodiceDestinatario = "1234567";
            f.FatturaElettronicaHeader.DatiTrasmissione.PECDestinatario    = "pec";
            var form = new FatturaElettronicaForm();

            form.FatturaElettronica = f;
            form.ShowDialog();
        }
        public void NomeCognomeIsIgnored()
        {
            var f          = Fattura.CreateInstance(Instance.Privati);
            var anagrafica = f.FatturaElettronicaHeader.CedentePrestatore.DatiAnagrafici.Anagrafica;

            anagrafica.Nome = "nome";
            var json = f.FatturaElettronicaHeader.CedentePrestatore.DatiAnagrafici.Anagrafica.ToJson();

            Assert.AreEqual("nome", anagrafica.CognomeNome);
            Assert.IsFalse(json.Contains("CognomeNome"));
        }
        public void FromJson()
        {
            var f = Fattura.CreateInstance(Instance.Privati);

            f.ReadXml("Samples/IT02182030391_32.xml");
            Assert.AreEqual("32", f.FatturaElettronicaHeader.DatiTrasmissione.ProgressivoInvio);

            var json      = f.ToJson();
            var challenge = Fattura.CreateInstance(Instance.Privati);

            challenge.FromJson(json);
            Assert.AreEqual("32", challenge.FatturaElettronicaHeader.DatiTrasmissione.ProgressivoInvio);
        }
        public void DeserializeAndThenSerializeOfficialPRSample()
        {
            var f = Deserialize("Samples/IT01234567890_FPR02.xml");

            Assert.IsTrue(f.Validate().IsValid);

            var json = f.ToJson();

            var challenge = Fattura.CreateInstance(Instance.Privati);

            challenge.FromJson(new JsonTextReader(new StringReader(json)));
            Assert.IsTrue(challenge.Validate().IsValid);
        }
示例#14
0
        private Fattura Deserialize(string fileName)
        {
            var f = Fattura.CreateInstance(Instance.Privati);
            var s = new XmlReaderSettings {
                IgnoreWhitespace = true
            };

            using (var r = XmlReader.Create(fileName, new XmlReaderSettings {
                IgnoreWhitespace = true
            }))
            {
                f.ReadXml(r);
            }
            return(f);
        }
示例#15
0
        static void Main(string[] args)
        {
            var fattura = Fattura.CreateInstance(Instance.Privati);

            fattura.ReadXmlSigned("IT02182030391_31.xml.p7m");

            var ragioneSociale = fattura.Header.CedentePrestatore.DatiAnagrafici.Anagrafica.Denominazione;

            Console.WriteLine($"Cedente/Prestatore: {ragioneSociale}");
            foreach (var documento in fattura.Body)
            {
                var datiDocumento = documento.DatiGenerali.DatiGeneraliDocumento;
                Console.WriteLine($"fattura num. {datiDocumento.Numero} del {datiDocumento.Data}");
            }
        }
        public void WriteXML()
        {
            var f = Fattura.CreateInstance(Instance.Privati);

            f.FatturaElettronicaHeader.DatiTrasmissione.ProgressivoInvio = "99";

            string outFile = Path.GetTempFileName();

            f.WriteXml(outFile);

            var challenge = Fattura.CreateInstance(Instance.Privati);

            using (var r = XmlReader.Create(outFile, new XmlReaderSettings {
                IgnoreWhitespace = true, IgnoreComments = true
            }))
            {
                challenge.ReadXml(r);
            }
            Assert.AreEqual("99", f.FatturaElettronicaHeader.DatiTrasmissione.ProgressivoInvio);
        }
        static void Main(string[] args)
        {
            var fattura = Fattura.CreateInstance(Instance.Privati);

            // Lettura diretta da XML (senza necessità di uno stream aperto)
            fattura.ReadXml("IT02182030391_32.xml");
            // Lettura da stream
            fattura.ReadXml(File.OpenRead("IT02182030391_32.xml"));

            // Firma digitale del file xml con file pfx
            fattura.WriteXmlSigned("idsrv3test.pfx", "idsrv3test", "IT02182030391_32.xml.pm7");

            // Legge file con firma digitale. Solleva eccezione se firma invalida.
            fattura.ReadXmlSigned("IT02182030391_31.xml.p7m");
            // Legge file con firma digitale evitando di convalidarne la firma
            fattura.ReadXmlSigned("IT02182030391_31.xml.p7m", validateSignature: false);

            // Scrive direttamente su XML (senza necessità passare uno stream)
            fattura.WriteXml("Copia di IT02182030391_31.xml");

            // Crea HTML della fattura. Usa foglio di stile PA
            // (https://www.fatturapa.gov.it/export/fatturazione/sdi/fatturapa/v1.2.1/fatturaPA_v1.2.1.xsl)
            fattura.WriteHtml("fattura.htm", "fatturaPA_v1.2.1.xsl");

            // Serializza fattura in JSON.
            var json = fattura.ToJson();

            var copia = Fattura.CreateInstance(Instance.Privati);

            // Deserializza da JSON
            copia.FromJson(json);
            // Le due fatture sono uguali.
            Console.WriteLine($"{fattura.FatturaElettronicaHeader.DatiTrasmissione.CodiceDestinatario}");
            Console.WriteLine($"{copia.FatturaElettronicaHeader.DatiTrasmissione.CodiceDestinatario}");

            GetNextFileName();
        }
示例#18
0
        public void NonSignedFileThrowsException()
        {
            var f = Fattura.CreateInstance(Instance.Privati);

            Assert.ThrowsException <CmsException>(() => f.ReadXmlSigned("Samples/IT02182030391_32.xml"));
        }
示例#19
0
        public void ReadXMLSignedBase64ThrowsOnNonSignedFile()
        {
            var f = Fattura.CreateInstance(Instance.Privati);

            Assert.ThrowsException <FormatException>(() => f.ReadXmlSigned("Samples/IT02182030391_32.xml"));
        }