forked from FatturaElettronica/FatturaElettronica.NET
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFatturaElettronica.cs
69 lines (58 loc) · 2.41 KB
/
FatturaElettronica.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
using BusinessObjects;
using BusinessObjects.Validators;
using FatturaElettronicaPA.Validators;
using System.Collections.Generic;
namespace FatturaElettronicaPA
{
public class FatturaElettronica : BusinessObject
{
// TODO override ReadXml and WriteXML in order to properly handle List<FatturaElettronicaBody>
private readonly FatturaElettronicaHeader.FatturaElettronicaHeader _header;
private readonly List<FatturaElettronicaBody.FatturaElettronicaBody> _body;
/// <summary>
/// Constructor.
/// </summary>
public FatturaElettronica() {
_header = new FatturaElettronicaHeader.FatturaElettronicaHeader();
_body = new List<FatturaElettronicaBody.FatturaElettronicaBody>();
}
public override void WriteXml(System.Xml.XmlWriter w)
{
w.WriteStartElement("p", GetType().Name, "http://www.fatturapa.gov.it/sdi/fatturapa/v1.1");
w.WriteAttributeString("versione","1.1");
base.WriteXml(w);
w.WriteEndElement();
}
public override void ReadXml(System.Xml.XmlReader r) {
r.MoveToContent();
base.ReadXml(r);
}
#region Properties
/// IMPORTANT
/// Each data property must be flagged with the Order attribute or it will be ignored.
/// Also, properties must be listed with the precise order in the specification.
/// <summary>
/// Intestazione della comunicazione.
/// </summary>
[DataProperty]
public FatturaElettronicaHeader.FatturaElettronicaHeader FatturaElettronicaHeader {
get { return _header; }
}
/// <summary>
/// Lotto di fatture incluse nella comunicazione.
/// </summary>
/// <remarks>Il blocco ha molteciplità 1 nel caso di fattura singola; nel caso di lotto di fatture, si ripete
/// per ogni fattura componente il lotto stesso.</remarks>
[DataProperty]
public List<FatturaElettronicaBody.FatturaElettronicaBody> FatturaElettronicaBody {
get { return _body; }
}
#endregion
protected override List<Validator> CreateRules() {
var rules = base.CreateRules();
rules.Add(new FRequiredValidator("FatturaElettronicaHeader"));
rules.Add(new FRequiredValidator("FatturaElettronicaBody"));
return rules;
}
}
}