public void WriteXmlSignedThrowsOnMissingPfxFile() { var f = Fattura.CreateInstance(Instance.Privati); Assert.ThrowsException <FatturaElettronicaSignatureException>(() => f.WriteXmlSigned("Samples/notreally.pfx", "idsrv3test", "Samples/IT02182030391_32.xml.p7m")); }
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(); }
private void ImpostaCampiTestata(Fattura fattura) { _excel.Range("Note1").Value = fattura.Note1; _excel.Range("Note2").Value = fattura.Note2; _excel.Range("TrasportoACura").Value = fattura.TrasportoACura; _excel.Range("Vettore").Value = fattura.Vettore; _excel.Range("AspettoBeni").Value = fattura.AspettoEsterno; _excel.Range("CausaleTrasporto").Value = fattura.CausaleTrasporto; _excel.Range("DataOraTrasporto").Value = fattura.DataTrasporto; _excel.Range("NColli").Value = fattura.NumeroColli; _excel.Range("PesoKg").Value = fattura.PesoKg; _excel.Range("Porto").Value = fattura.Porto; _excel.Range("Codice").Value = fattura.Codice; _excel.Range("Data").Value = fattura.Data; _excel.Range("Pagamento").Value = fattura.Pagamento; using (var uof = new UnitOfWork()) { int enVal = (int)fattura.TipoDocumento; var descr = uof.TipiDocumentoFiscaleRepository.Find(a => a.IDEnum == enVal).Select(a => a.Descrizione).First(); _excel.Range("TipoDocumento").Value = descr; } _excel.Range("ClienteRagioneSociale").Value = fattura.ClienteFornitore.RagioneSociale; _excel.Range("ClienteIndirizzo").Value = fattura.ClienteFornitore.Indirizzo.IndirizzoConCivico; _excel.Range("ClienteCap").Value = fattura.ClienteFornitore.Indirizzo.Cap; _excel.Range("ClienteCitta").Value = fattura.ClienteFornitore.Indirizzo.Citta; _excel.Range("ClientePIVACF").Value = "CF - PIVA:" + fattura.ClienteFornitore.PIVA; _excel.Range("CodiceCliente").Value = fattura.ClienteFornitore.ID; }
public IFileInformation Convert(IFileInformation Input) { using (XmlReader _XmlReader = XmlReader.Create(new StringReader(File.ReadAllText(Input.Path.LocalPath)), _XmlReaderSettings)) { _FatturaDocument = new Fattura( ); _FatturaDocument.ReadXml(_XmlReader); } Document _PDFDocument = OpenPDFDoc(25.0f, 25.0f, Input); _PDFDocument.Add(GeneratePDFHeader(_FatturaDocument.FatturaElettronicaHeader)); for (int i = 0; i < _FatturaDocument.FatturaElettronicaBody.Count; i++) { AddInvoiceBodyToPDFPage(_FatturaDocument.FatturaElettronicaBody[i], _PDFDocument, i); } String _FileName = _XMLPAPDFFileName( ); _PDFDocument.Add(new Paragraph("\n" + _FileName, _HeaderHelvetica)); _PDFDocument.Close( ); return(new FileInformation(new FileFormat(EFileExtension.PDF, EFormat.PDF, "1.4"), new Uri(Input.Path.LocalPath + ".pdf"), Input.Directory + "\\" + _FileName.Replace(@"/", "") + ".pdf")); }
public static void Main(string[] args) { var env = new Env <Transaction>(); Fattura f = new Fattura(env); RigaFattura rf1 = new RigaFattura(env); RigaFattura rf2 = new RigaFattura(env); RigaFattura rf3 = new RigaFattura(env); f.Commit(); rf1.Commit(); rf2.Commit(); rf3.Commit(); f.AggregationRigaFattura.Add(rf1); f.AggregationRigaFattura.Add(rf2); f.AggregationRigaFattura.Add(rf3); f.Commit(); f.AggregationRigaFattura.Remove(rf2); f.Commit(); f.StampaRighe(1, 3); env.FailsafeTransactionalCommit(); }
public static void WriteHtml(this Fattura fattura, string outPath, string xslPath) { if (outPath == null) { throw new ArgumentNullException(nameof(outPath)); } if (xslPath == null) { throw new ArgumentNullException(nameof(xslPath)); } var tempXml = Path.GetTempFileName(); using (var w = XmlWriter.Create(tempXml, new XmlWriterSettings { Indent = true })) { fattura.WriteXml(w); } var xt = new XslCompiledTransform(); xt.Load(xslPath); xt.Transform(tempXml, outPath); }
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 WriteHtmlThrowsOnInvalidArguments() { var f = new Fattura(); Assert.ThrowsException <ArgumentNullException>(() => f.WriteHtml(outPath: null, xslPath: "xslPath")); Assert.ThrowsException <ArgumentNullException>(() => f.WriteHtml(outPath: "fileName", xslPath: null)); }
public static void ReadXmlSigned(this Fattura fattura, Stream stream, bool validateSignature = true) { CmsSignedData signedFile = new CmsSignedData(stream); if (validateSignature) { IX509Store certStore = signedFile.GetCertificates("Collection"); ICollection certs = certStore.GetMatches(new X509CertStoreSelector()); SignerInformationStore signerStore = signedFile.GetSignerInfos(); ICollection signers = signerStore.GetSigners(); foreach (object tempCertification in certs) { Org.BouncyCastle.X509.X509Certificate certification = tempCertification as Org.BouncyCastle.X509.X509Certificate; foreach (object tempSigner in signers) { SignerInformation signer = tempSigner as SignerInformation; if (!signer.Verify(certification.GetPublicKey())) { throw new FatturaElettronicaSignatureException(Resources.ErrorMessages.SignatureException); } } } } using (var memoryStream = new MemoryStream()) { signedFile.SignedContent.Write(memoryStream); fattura.ReadXml(memoryStream); } }
public static void WriteXmlSigned(this Fattura fattura, X509Certificate2 cert, string p7mFilePath) { string res = string.Empty; string tempFile = Path.GetTempFileName(); if (!p7mFilePath.ToLowerInvariant().EndsWith(".p7m")) { p7mFilePath += ".p7m"; } try { fattura.WriteXml(tempFile); ContentInfo content = new ContentInfo(new Oid("1.2.840.113549.1.7.1", "PKCS 7 Data"), File.ReadAllBytes(tempFile)); SignedCms signedCms = new SignedCms(SubjectIdentifierType.IssuerAndSerialNumber, content, false); CmsSigner signer = new CmsSigner(cert); signer.IncludeOption = X509IncludeOption.EndCertOnly; signer.DigestAlgorithm = new Oid("2.16.840.1.101.3.4.2.1", "SHA256"); signer.SignedAttributes.Add(new Pkcs9SigningTime(DateTime.Now)); try { //PKCS7 format signedCms.ComputeSignature(signer, false); } catch (CryptographicException cex) { //To evaluate for the future https://stackoverflow.com/a/52897100 /* * // Try re-importing the private key into a better CSP: * using (RSA tmpRsa = RSA.Create()) * { * tmpRsa.ImportParameters(cert.GetRSAPrivateKey().ExportParameters(true)); * * using (X509Certificate2 tmpCertNoKey = new X509Certificate2(cert.RawData)) * using (X509Certificate2 tmpCert = tmpCertNoKey.CopyWithPrivateKey(tmpRsa)) * { * signer.Certificate = tmpCert; * signedCms.ComputeSignature(signer, false); * } * }*/ throw cex; } byte[] signature = signedCms.Encode(); File.WriteAllBytes(p7mFilePath, signature); } catch (Exception) { throw new FatturaElettronicaSignatureException(Resources.ErrorMessages.FirmaException); } finally { if (File.Exists(tempFile)) { File.Delete(tempFile); } } }
public void ReadXMLSignedFallbacksToBase64Attempt() { var f = Fattura.CreateInstance(Instance.Privati); f.ReadXmlSigned("Samples/IT02182030391_31.Base64.xml.p7m"); Assert.AreEqual("31", f.FatturaElettronicaHeader.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); }
private Fattura Deserialize(byte[] b) { var f = Fattura.CreateInstance(Instance.Privati); f.ReadXml(b); return(f); }
private void button1_Click(object sender, EventArgs e) { var f = Fattura.CreateInstance(Instance.PubblicaAmministrazione); var form = new FatturaElettronicaForm(); form.FatturaElettronica = f; form.ShowDialog(); }
public static void ReadXml(this Fattura fattura, string filePath) { using (var r = XmlReader.Create(filePath, new XmlReaderSettings { IgnoreWhitespace = true, IgnoreComments = true })) { fattura.ReadXml(r); } }
public static void WriteXml(this Fattura fattura, string filePath) { using (var w = XmlWriter.Create(filePath, new XmlWriterSettings { Indent = true })) { fattura.WriteXml(w); } }
private IFileInformation TryGenerateXMLFile(IFileInformation _FileInformation, String Destination, FileConversionUpdate _FileConversionUpdate) { String FileText = File.ReadAllText(_FileInformation.Path.LocalPath); if (!FileText.Contains("FatturaElettronicaHeader") && !FileText.Contains("FatturaElettronicaBody")) { throw new InvalidOperationException("Unsupported Format" + _FileInformation.Path); } int _XMLStartIndex = FileText.IndexOf(Conventions.HeaderGaurd) - 1; int _XMLEndIndex = FileText.LastIndexOf(Conventions.BodyGaurd) - _XMLStartIndex + Conventions.BodyGaurd.Length + 1; String _RawBoundedData = FileText.Substring(_XMLStartIndex, _XMLEndIndex); String _PossibleXMLData = XML.Conventions.Header + Conventions.Header + CleanInvalidXmlChars(_RawBoundedData) + Conventions.Footer; FileInformation _ResultFileInformation = new FileInformation(new FileFormat(EFileExtension.XML, EFormat.Uknown, ""), Destination + "\\" + _FileInformation.FileName + ".xml"); using (XmlReader _XmlReader = XmlReader.Create(new StringReader(_PossibleXMLData), new XmlReaderSettings { IgnoreWhitespace = true, IgnoreComments = true })) { Fattura _Fattura = new Fattura( ); try { _Fattura.ReadXml(_XmlReader); if (_Fattura.Validate( ).IsValid) { using (XmlWriter _XmlWriter = XmlWriter.Create(_ResultFileInformation.Path.LocalPath, new XmlWriterSettings { Indent = true })) { _Fattura.WriteXml(_XmlWriter); } _FileConversionUpdate.AddTransformation(EFileTransformation.ConvertedToCopied, _FileInformation, _ResultFileInformation); } else { throw new ArgumentException("Invalid XMLPA FileContent "); } } catch (Exception Ex) { File.WriteAllText(_ResultFileInformation.Path.LocalPath, _PossibleXMLData); _FileConversionUpdate.AddTransformation(EFileTransformation.ConvertedToCopied, _FileInformation, _ResultFileInformation, new StateEventArgs(ESourceState.Unstable, Ex)); } } return(File.Exists(_ResultFileInformation.Path.LocalPath) ? _ResultFileInformation : null); }
public void Set(Fattura fattura) { if (fattura is FatturaPagata) { ((FatturaPagata)fattura).DataPagamento = DateTime.Now; } fattura.Test(); }
public void ReadXMLSignedStream() { var f = new Fattura(); using (var inputStream = new FileStream("Samples/IT02182030391_31.xml.p7m", FileMode.Open, FileAccess.Read)) { f.ReadXmlSigned(inputStream); } Assert.AreEqual("31", f.FatturaElettronicaHeader.DatiTrasmissione.ProgressivoInvio); }
public void Init(Fattura fattura) { Session session = new Session(); var nfattura = session.GetObjectByKey <Fattura>(fattura.Oid); //this.DataSource = nfattura; this.xpCollectionFattura.Criteria = new BinaryOperator("Oid", nfattura.Oid); }
public static void ReadXml(this Fattura fattura, Stream stream) { stream.Position = 0; using (var r = XmlReader.Create(stream, new XmlReaderSettings { IgnoreWhitespace = true, IgnoreComments = true })) { fattura.ReadXml(r); } }
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); }
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 bool IsValidXML(String InputXML) { using (var r = XmlReader.Create(new StringReader(InputXML), _XmlReaderSettings)) { _FatturaDocument = new Fattura( ); _FatturaDocument.ReadXml(r); return(_FatturaDocument.Validate( ).IsValid); } }
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")); }
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 static void WriteXmlSigned(this Fattura fattura, string pfxFile, string pfxPassword, string p7mFilePath) { if (!File.Exists(pfxFile)) { throw new FatturaElettronicaSignatureException(Resources.ErrorMessages.PfxIsMissing); } var cert = new X509Certificate2(pfxFile, pfxPassword); WriteXmlSigned(fattura, cert, p7mFilePath); }
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 WriteHtml() { var f = new Fattura(); var outFile = Path.GetTempFileName(); f.ReadXml("Samples/IT02182030391_32.xml"); f.WriteHtml(outFile, "Samples/fatturaPA_v1.2.1.xsl"); var bytes = File.ReadAllBytes(outFile); Assert.IsTrue(bytes.Length > 2048); }
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); }