Estensione di FatturaElettronica per .NET. Consente di leggere fatture firmate elettronicamente (file con estensione .p7m)
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
DemoApp Bump to FatturaElettronica 1.0.1 Nov 9, 2018
FatturaElettronica.Extensions Bump version to 1.0.1 Nov 9, 2018
Test Bump MSTest.TestAdapter from 1.2.1 to 1.3.2 Nov 9, 2018
.gitignore
AUTHORS Andrea Tosato Oct 11, 2018
CHANGES Bump version to 1.0.1 Nov 9, 2018
FatturaElettronica.Extensions.sln This has to be a NetStandard 2.0 package Sep 27, 2018
LICENSE
README.md
appveyor.yml Add appveyor.yml for CI integration Oct 12, 2018

README.md

FatturaElettronica.Extensions Build status

Estensioni per FatturaElettronica.NET

Caratteristiche

  • ReadXml(string filePath): consente di leggere direttamente un file XML non firmato senza necessita di aprire uno stream.
  • WriteXml(string filePath): consente di scrivere un file XML non firmato senza necessita di aprire uno stream.
  • ReadXmlSigned(string filePath): consente di leggere un file firmato digitalmente con algoritmo CADES (.p7m).
  • FromJson(string json): carica la fattura direttamente da una stringa JSON.
  • FatturaElettronicaFileNameGenerator: classe per la generazione di nomi file conformi allo standard fattura elettronica.

Utilizzo

In questo esempio leggiamo una fattura elettronica firmata digitalmente usando l'extension method ReadXmlSigned.

using System;
using System.Xml;
using FatturaElettronica;
using FatturaElettronica.Common;
using FatturaElettronica.Extensions;
using FatturaElettronica.Defaults;


namespace DemoApp
{
    class Program
    {
        static void Main(string[] args)
        {
            var fattura = Fattura.CreateInstance(Instance.Privati);

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

            // 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();
        }

        /// Ottiene e stampa un nome di file valido per fattura elettronica
        static void GetNextFileName()
        {
            // Generare il nome del file
            var fileNameGenerator = new FatturaElettronicaFileNameGenerator(
                new IdFiscaleIVA() { IdPaese = "IT", IdCodice = "0123456789" }
            );
            var fileName = fileNameGenerator.GetNextFileName(lastBillingNumber: 100);

            // IT0123456789_0002T.xml
            Console.WriteLine(fileName);
            // 101
            Console.WriteLine(fileNameGenerator.CurrentIndex);
        }
    }
}

Per una guida completa all'uso di Fattura Elettronica per .NET vedi il repository principale.

Portabilità

FatturaElettronica.Extensions supporta .NET Standard v2.0, cosa che le permette di supportare un ampio numero di piattaforme.

Installazione

FatturaElettronica.Extensions è su NuGet quindi tutto quel che serve è eseguire:

    PM> Install-Package FatturaElettronica.Extensions

dalla Package Console, oppure usare il comando equivalente in Visual Studio.

Licenza

FatturaElettronica è un progetto open source di Nicola Iarocci e Gestionale Amica rilasciato sotto licenza BSD. BouncyCastle, Copyright (c) 2000 - 2017 The Legion of the Bouncy Castle Inc. (licenza