@@ -17,19 +17,20 @@ namespace MDFe.Classes.Extencoes
17
17
{
18
18
public static class ExtMDFe
19
19
{
20
- public static MDFEletronico Valida ( this MDFEletronico mdfe )
20
+ public static MDFEletronico Valida ( this MDFEletronico mdfe , MDFeConfiguracao cfgMdfe = null )
21
21
{
22
+ var config = cfgMdfe ?? MDFeConfiguracao . Instancia ;
22
23
if ( mdfe == null ) throw new ArgumentException ( "Erro de assinatura, MDFe esta null" ) ;
23
24
24
25
var xmlMdfe = FuncoesXml . ClasseParaXmlString ( mdfe ) ;
25
26
26
- switch ( MDFeConfiguracao . VersaoWebService . VersaoLayout )
27
+ switch ( config . VersaoWebService . VersaoLayout )
27
28
{
28
29
case VersaoServico . Versao100 :
29
- Validador . Valida ( xmlMdfe , "mdfe_v1.00.xsd" ) ;
30
+ Validador . Valida ( xmlMdfe , "mdfe_v1.00.xsd" , config ) ;
30
31
break ;
31
32
case VersaoServico . Versao300 :
32
- Validador . Valida ( xmlMdfe , "mdfe_v3.00.xsd" ) ;
33
+ Validador . Valida ( xmlMdfe , "mdfe_v3.00.xsd" , config ) ;
33
34
break ;
34
35
}
35
36
@@ -39,63 +40,64 @@ public static MDFEletronico Valida(this MDFEletronico mdfe)
39
40
40
41
if ( tipoModal == typeof ( MDFeRodo ) )
41
42
{
42
- switch ( MDFeConfiguracao . VersaoWebService . VersaoLayout )
43
+ switch ( config . VersaoWebService . VersaoLayout )
43
44
{
44
45
case VersaoServico . Versao100 :
45
- Validador . Valida ( xmlModal , "mdfeModalRodoviario_v1.00.xsd" ) ;
46
+ Validador . Valida ( xmlModal , "mdfeModalRodoviario_v1.00.xsd" , config ) ;
46
47
break ;
47
48
case VersaoServico . Versao300 :
48
- Validador . Valida ( xmlModal , "mdfeModalRodoviario_v3.00.xsd" ) ;
49
+ Validador . Valida ( xmlModal , "mdfeModalRodoviario_v3.00.xsd" , config ) ;
49
50
break ;
50
51
}
51
52
}
52
53
53
54
if ( tipoModal == typeof ( MDFeAereo ) )
54
55
{
55
- switch ( MDFeConfiguracao . VersaoWebService . VersaoLayout )
56
+ switch ( config . VersaoWebService . VersaoLayout )
56
57
{
57
58
case VersaoServico . Versao100 :
58
- Validador . Valida ( xmlModal , "mdfeModalAereo_v1.00.xsd" ) ;
59
+ Validador . Valida ( xmlModal , "mdfeModalAereo_v1.00.xsd" , config ) ;
59
60
break ;
60
61
case VersaoServico . Versao300 :
61
- Validador . Valida ( xmlModal , "mdfeModalAereo_v3.00.xsd" ) ;
62
+ Validador . Valida ( xmlModal , "mdfeModalAereo_v3.00.xsd" , config ) ;
62
63
break ;
63
64
}
64
65
}
65
66
66
67
if ( tipoModal == typeof ( MDFeAquav ) )
67
68
{
68
- switch ( MDFeConfiguracao . VersaoWebService . VersaoLayout )
69
+ switch ( config . VersaoWebService . VersaoLayout )
69
70
{
70
71
case VersaoServico . Versao100 :
71
- Validador . Valida ( xmlModal , "mdfeModalAquaviario_v1.00.xsd" ) ;
72
+ Validador . Valida ( xmlModal , "mdfeModalAquaviario_v1.00.xsd" , config ) ;
72
73
break ;
73
74
case VersaoServico . Versao300 :
74
- Validador . Valida ( xmlModal , "mdfeModalAquaviario_v3.00.xsd" ) ;
75
+ Validador . Valida ( xmlModal , "mdfeModalAquaviario_v3.00.xsd" , config ) ;
75
76
break ;
76
77
}
77
78
}
78
79
79
80
if ( tipoModal == typeof ( MDFeFerrov ) )
80
81
{
81
- switch ( MDFeConfiguracao . VersaoWebService . VersaoLayout )
82
+ switch ( config . VersaoWebService . VersaoLayout )
82
83
{
83
84
case VersaoServico . Versao100 :
84
- Validador . Valida ( xmlModal , "mdfeModalFerroviario_v1.00.xsd" ) ;
85
+ Validador . Valida ( xmlModal , "mdfeModalFerroviario_v1.00.xsd" , config ) ;
85
86
break ;
86
87
case VersaoServico . Versao300 :
87
- Validador . Valida ( xmlModal , "mdfeModalFerroviario_v3.00.xsd" ) ;
88
+ Validador . Valida ( xmlModal , "mdfeModalFerroviario_v3.00.xsd" , config ) ;
88
89
break ;
89
90
}
90
91
}
91
92
92
93
return mdfe ;
93
94
}
94
95
95
- public static MDFEletronico Assina ( this MDFEletronico mdfe , EventHandler < string > eventHandlerChaveMdfe = null , object quemInvocouEventoChaveMDFe = null )
96
+ public static MDFEletronico Assina ( this MDFEletronico mdfe , EventHandler < string > eventHandlerChaveMdfe = null , object quemInvocouEventoChaveMDFe = null , MDFeConfiguracao cfgMdfe = null )
96
97
{
97
98
if ( mdfe == null ) throw new ArgumentException ( "Erro de assinatura, MDFe esta null" ) ;
98
99
100
+ var config = cfgMdfe ?? MDFeConfiguracao . Instancia ;
99
101
var modeloDocumentoFiscal = mdfe . InfMDFe . Ide . Mod ;
100
102
var tipoEmissao = ( int ) mdfe . InfMDFe . Ide . TpEmis ;
101
103
var codigoNumerico = mdfe . InfMDFe . Ide . CMDF ;
@@ -118,10 +120,10 @@ public static MDFEletronico Assina(this MDFEletronico mdfe, EventHandler<string>
118
120
if ( eventHandlerChaveMdfe != null )
119
121
eventHandlerChaveMdfe . Invoke ( quemInvocouEventoChaveMDFe , dadosChave . Chave ) ;
120
122
121
- mdfe . InfMDFe . Versao = MDFeConfiguracao . VersaoWebService . VersaoLayout ;
123
+ mdfe . InfMDFe . Versao = config . VersaoWebService . VersaoLayout ;
122
124
mdfe . InfMDFe . Ide . CDV = dadosChave . DigitoVerificador ;
123
125
124
- var assinatura = AssinaturaDigital . Assina ( mdfe , mdfe . InfMDFe . Id , MDFeConfiguracao . X509Certificate2 ) ;
126
+ var assinatura = AssinaturaDigital . Assina ( mdfe , mdfe . InfMDFe . Id , config . X509Certificate2 ) ;
125
127
126
128
mdfe . Signature = assinatura ;
127
129
@@ -133,12 +135,13 @@ public static string XmlString(this MDFEletronico mdfe)
133
135
return FuncoesXml . ClasseParaXmlString ( mdfe ) ;
134
136
}
135
137
136
- public static void SalvarXmlEmDisco ( this MDFEletronico mdfe , string nomeArquivo = null )
138
+ public static void SalvarXmlEmDisco ( this MDFEletronico mdfe , string nomeArquivo = null , MDFeConfiguracao cfgMdfe = null )
137
139
{
138
- if ( MDFeConfiguracao . NaoSalvarXml ( ) ) return ;
140
+ var config = cfgMdfe ?? MDFeConfiguracao . Instancia ;
141
+ if ( config . NaoSalvarXml ( ) ) return ;
139
142
140
143
if ( string . IsNullOrEmpty ( nomeArquivo ) )
141
- nomeArquivo = Path . Combine ( MDFeConfiguracao . CaminhoSalvarXml , mdfe . Chave ( ) + "-mdfe.xml" ) ;
144
+ nomeArquivo = Path . Combine ( config . CaminhoSalvarXml , mdfe . Chave ( ) + "-mdfe.xml" ) ;
142
145
143
146
FuncoesXml . ClasseParaArquivoXml ( mdfe , nomeArquivo ) ;
144
147
}
0 commit comments