Skip to content

Commit b9393ea

Browse files
committed
Transformada classe MDFeConfiguracao de static para singleton, para permitir configurações em ambientes multi-empresa.
1 parent 19e48cd commit b9393ea

39 files changed

+358
-266
lines changed

MDFe.AppTeste/MDFeTesteModel.cs

+18-18
Original file line numberDiff line numberDiff line change
@@ -579,7 +579,7 @@ public void CriarEnviar()
579579
#endregion dados emitente (emit)
580580

581581
#region modal
582-
if (MDFeConfiguracao.VersaoWebService.VersaoLayout == VersaoServico.Versao100)
582+
if (MDFeConfiguracao.Instancia.VersaoWebService.VersaoLayout == VersaoServico.Versao100)
583583
{
584584
mdfe.InfMDFe.InfModal.Modal = new MDFeRodo
585585
{
@@ -607,7 +607,7 @@ public void CriarEnviar()
607607
}
608608

609609

610-
if (MDFeConfiguracao.VersaoWebService.VersaoLayout == VersaoServico.Versao300)
610+
if (MDFeConfiguracao.Instancia.VersaoWebService.VersaoLayout == VersaoServico.Versao300)
611611
{
612612
mdfe.InfMDFe.InfModal.Modal = new MDFeRodo
613613
{
@@ -689,7 +689,7 @@ public void CriarEnviar()
689689
};
690690

691691

692-
if (MDFeConfiguracao.VersaoWebService.VersaoLayout == VersaoServico.Versao300)
692+
if (MDFeConfiguracao.Instancia.VersaoWebService.VersaoLayout == VersaoServico.Versao300)
693693
{
694694
mdfe.InfMDFe.InfDoc.InfMunDescarga[0].InfCTe[0].Peri = new List<MDFePeri>
695695
{
@@ -705,7 +705,7 @@ public void CriarEnviar()
705705

706706
#region seg
707707

708-
if (MDFeConfiguracao.VersaoWebService.VersaoLayout == VersaoServico.Versao300)
708+
if (MDFeConfiguracao.Instancia.VersaoWebService.VersaoLayout == VersaoServico.Versao300)
709709
{
710710
mdfe.InfMDFe.Seg = new List<MDFeSeg>();
711711

@@ -733,7 +733,7 @@ public void CriarEnviar()
733733

734734
#region Produto Predominante
735735

736-
if (MDFeConfiguracao.VersaoWebService.VersaoLayout == VersaoServico.Versao300)
736+
if (MDFeConfiguracao.Instancia.VersaoWebService.VersaoLayout == VersaoServico.Versao300)
737737
{
738738
mdfe.InfMDFe.prodPred = new prodPred
739739
{
@@ -865,7 +865,7 @@ public void GerarESalvar()
865865
#endregion dados emitente (emit)
866866

867867
#region modal
868-
if (MDFeConfiguracao.VersaoWebService.VersaoLayout == VersaoServico.Versao100)
868+
if (MDFeConfiguracao.Instancia.VersaoWebService.VersaoLayout == VersaoServico.Versao100)
869869
{
870870
mdfe.InfMDFe.InfModal.VersaoModal = MDFeVersaoModal.Versao100;
871871
mdfe.InfMDFe.InfModal.Modal = new MDFeRodo
@@ -894,7 +894,7 @@ public void GerarESalvar()
894894
}
895895

896896

897-
if (MDFeConfiguracao.VersaoWebService.VersaoLayout == VersaoServico.Versao300)
897+
if (MDFeConfiguracao.Instancia.VersaoWebService.VersaoLayout == VersaoServico.Versao300)
898898
{
899899
mdfe.InfMDFe.InfModal.VersaoModal = MDFeVersaoModal.Versao300;
900900
mdfe.InfMDFe.InfModal.Modal = new MDFeRodo
@@ -978,7 +978,7 @@ public void GerarESalvar()
978978
};
979979

980980

981-
if (MDFeConfiguracao.VersaoWebService.VersaoLayout == VersaoServico.Versao300)
981+
if (MDFeConfiguracao.Instancia.VersaoWebService.VersaoLayout == VersaoServico.Versao300)
982982
{
983983
mdfe.InfMDFe.InfDoc.InfMunDescarga[0].InfCTe[0].Peri = new List<MDFePeri>
984984
{
@@ -994,7 +994,7 @@ public void GerarESalvar()
994994

995995
#region seg
996996

997-
if (MDFeConfiguracao.VersaoWebService.VersaoLayout == VersaoServico.Versao300)
997+
if (MDFeConfiguracao.Instancia.VersaoWebService.VersaoLayout == VersaoServico.Versao300)
998998
{
999999
mdfe.InfMDFe.Seg = new List<MDFeSeg>();
10001000

@@ -1346,17 +1346,17 @@ private static void CarregarConfiguracoesMDFe(Configuracao config)
13461346
ManterDadosEmCache = config.CertificadoDigital.ManterEmCache,
13471347
};
13481348

1349-
MDFeConfiguracao.ConfiguracaoCertificado = configuracaoCertificado;
1350-
MDFeConfiguracao.CaminhoSchemas = config.ConfigWebService.CaminhoSchemas;
1351-
MDFeConfiguracao.CaminhoSalvarXml = config.DiretorioSalvarXml;
1352-
MDFeConfiguracao.IsSalvarXml = config.IsSalvarXml;
1349+
MDFeConfiguracao.Instancia.ConfiguracaoCertificado = configuracaoCertificado;
1350+
MDFeConfiguracao.Instancia.CaminhoSchemas = config.ConfigWebService.CaminhoSchemas;
1351+
MDFeConfiguracao.Instancia.CaminhoSalvarXml = config.DiretorioSalvarXml;
1352+
MDFeConfiguracao.Instancia.IsSalvarXml = config.IsSalvarXml;
13531353

1354-
MDFeConfiguracao.VersaoWebService.VersaoLayout = config.ConfigWebService.VersaoLayout;
1354+
MDFeConfiguracao.Instancia.VersaoWebService.VersaoLayout = config.ConfigWebService.VersaoLayout;
13551355

1356-
MDFeConfiguracao.VersaoWebService.TipoAmbiente = config.ConfigWebService.Ambiente;
1357-
MDFeConfiguracao.VersaoWebService.UfEmitente = config.ConfigWebService.UfEmitente;
1358-
MDFeConfiguracao.VersaoWebService.TimeOut = config.ConfigWebService.TimeOut;
1359-
MDFeConfiguracao.IsAdicionaQrCode = true;
1356+
MDFeConfiguracao.Instancia.VersaoWebService.TipoAmbiente = config.ConfigWebService.Ambiente;
1357+
MDFeConfiguracao.Instancia.VersaoWebService.UfEmitente = config.ConfigWebService.UfEmitente;
1358+
MDFeConfiguracao.Instancia.VersaoWebService.TimeOut = config.ConfigWebService.TimeOut;
1359+
MDFeConfiguracao.Instancia.IsAdicionaQrCode = true;
13601360
}
13611361

13621362
protected virtual void OnSucessoSync(RetornoEEnvio e)

MDFe.Classes/Extensoes/ExtMDFe.cs

+25-22
Original file line numberDiff line numberDiff line change
@@ -17,19 +17,20 @@ namespace MDFe.Classes.Extencoes
1717
{
1818
public static class ExtMDFe
1919
{
20-
public static MDFEletronico Valida(this MDFEletronico mdfe)
20+
public static MDFEletronico Valida(this MDFEletronico mdfe, MDFeConfiguracao cfgMdfe = null)
2121
{
22+
var config = cfgMdfe ?? MDFeConfiguracao.Instancia;
2223
if (mdfe == null) throw new ArgumentException("Erro de assinatura, MDFe esta null");
2324

2425
var xmlMdfe = FuncoesXml.ClasseParaXmlString(mdfe);
2526

26-
switch (MDFeConfiguracao.VersaoWebService.VersaoLayout)
27+
switch (config.VersaoWebService.VersaoLayout)
2728
{
2829
case VersaoServico.Versao100:
29-
Validador.Valida(xmlMdfe, "mdfe_v1.00.xsd");
30+
Validador.Valida(xmlMdfe, "mdfe_v1.00.xsd", config);
3031
break;
3132
case VersaoServico.Versao300:
32-
Validador.Valida(xmlMdfe, "mdfe_v3.00.xsd");
33+
Validador.Valida(xmlMdfe, "mdfe_v3.00.xsd", config);
3334
break;
3435
}
3536

@@ -39,63 +40,64 @@ public static MDFEletronico Valida(this MDFEletronico mdfe)
3940

4041
if (tipoModal == typeof (MDFeRodo))
4142
{
42-
switch (MDFeConfiguracao.VersaoWebService.VersaoLayout)
43+
switch (config.VersaoWebService.VersaoLayout)
4344
{
4445
case VersaoServico.Versao100:
45-
Validador.Valida(xmlModal, "mdfeModalRodoviario_v1.00.xsd");
46+
Validador.Valida(xmlModal, "mdfeModalRodoviario_v1.00.xsd", config);
4647
break;
4748
case VersaoServico.Versao300:
48-
Validador.Valida(xmlModal, "mdfeModalRodoviario_v3.00.xsd");
49+
Validador.Valida(xmlModal, "mdfeModalRodoviario_v3.00.xsd", config);
4950
break;
5051
}
5152
}
5253

5354
if (tipoModal == typeof (MDFeAereo))
5455
{
55-
switch (MDFeConfiguracao.VersaoWebService.VersaoLayout)
56+
switch (config.VersaoWebService.VersaoLayout)
5657
{
5758
case VersaoServico.Versao100:
58-
Validador.Valida(xmlModal, "mdfeModalAereo_v1.00.xsd");
59+
Validador.Valida(xmlModal, "mdfeModalAereo_v1.00.xsd", config);
5960
break;
6061
case VersaoServico.Versao300:
61-
Validador.Valida(xmlModal, "mdfeModalAereo_v3.00.xsd");
62+
Validador.Valida(xmlModal, "mdfeModalAereo_v3.00.xsd", config);
6263
break;
6364
}
6465
}
6566

6667
if (tipoModal == typeof (MDFeAquav))
6768
{
68-
switch (MDFeConfiguracao.VersaoWebService.VersaoLayout)
69+
switch (config.VersaoWebService.VersaoLayout)
6970
{
7071
case VersaoServico.Versao100:
71-
Validador.Valida(xmlModal, "mdfeModalAquaviario_v1.00.xsd");
72+
Validador.Valida(xmlModal, "mdfeModalAquaviario_v1.00.xsd", config);
7273
break;
7374
case VersaoServico.Versao300:
74-
Validador.Valida(xmlModal, "mdfeModalAquaviario_v3.00.xsd");
75+
Validador.Valida(xmlModal, "mdfeModalAquaviario_v3.00.xsd", config);
7576
break;
7677
}
7778
}
7879

7980
if (tipoModal == typeof (MDFeFerrov))
8081
{
81-
switch (MDFeConfiguracao.VersaoWebService.VersaoLayout)
82+
switch (config.VersaoWebService.VersaoLayout)
8283
{
8384
case VersaoServico.Versao100:
84-
Validador.Valida(xmlModal, "mdfeModalFerroviario_v1.00.xsd");
85+
Validador.Valida(xmlModal, "mdfeModalFerroviario_v1.00.xsd", config);
8586
break;
8687
case VersaoServico.Versao300:
87-
Validador.Valida(xmlModal, "mdfeModalFerroviario_v3.00.xsd");
88+
Validador.Valida(xmlModal, "mdfeModalFerroviario_v3.00.xsd", config);
8889
break;
8990
}
9091
}
9192

9293
return mdfe;
9394
}
9495

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)
9697
{
9798
if(mdfe == null) throw new ArgumentException("Erro de assinatura, MDFe esta null");
9899

100+
var config = cfgMdfe ?? MDFeConfiguracao.Instancia;
99101
var modeloDocumentoFiscal = mdfe.InfMDFe.Ide.Mod;
100102
var tipoEmissao = (int) mdfe.InfMDFe.Ide.TpEmis;
101103
var codigoNumerico = mdfe.InfMDFe.Ide.CMDF;
@@ -118,10 +120,10 @@ public static MDFEletronico Assina(this MDFEletronico mdfe, EventHandler<string>
118120
if (eventHandlerChaveMdfe != null)
119121
eventHandlerChaveMdfe.Invoke(quemInvocouEventoChaveMDFe, dadosChave.Chave);
120122

121-
mdfe.InfMDFe.Versao = MDFeConfiguracao.VersaoWebService.VersaoLayout;
123+
mdfe.InfMDFe.Versao = config.VersaoWebService.VersaoLayout;
122124
mdfe.InfMDFe.Ide.CDV = dadosChave.DigitoVerificador;
123125

124-
var assinatura = AssinaturaDigital.Assina(mdfe, mdfe.InfMDFe.Id, MDFeConfiguracao.X509Certificate2);
126+
var assinatura = AssinaturaDigital.Assina(mdfe, mdfe.InfMDFe.Id, config.X509Certificate2);
125127

126128
mdfe.Signature = assinatura;
127129

@@ -133,12 +135,13 @@ public static string XmlString(this MDFEletronico mdfe)
133135
return FuncoesXml.ClasseParaXmlString(mdfe);
134136
}
135137

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)
137139
{
138-
if (MDFeConfiguracao.NaoSalvarXml()) return;
140+
var config = cfgMdfe ?? MDFeConfiguracao.Instancia;
141+
if (config.NaoSalvarXml()) return;
139142

140143
if (string.IsNullOrEmpty(nomeArquivo))
141-
nomeArquivo = Path.Combine(MDFeConfiguracao.CaminhoSalvarXml, mdfe.Chave() + "-mdfe.xml");
144+
nomeArquivo = Path.Combine(config.CaminhoSalvarXml, mdfe.Chave() + "-mdfe.xml");
142145

143146
FuncoesXml.ClasseParaArquivoXml(mdfe, nomeArquivo);
144147
}

MDFe.Classes/Extensoes/ExtMDFeConsReciMDFe.cs

+9-7
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,18 @@ namespace MDFe.Classes.Extencoes
1010
{
1111
public static class ExtMDFeConsReciMDFe
1212
{
13-
public static void ValidaSchema(this MDFeConsReciMDFe consReciMDFe)
13+
public static void ValidaSchema(this MDFeConsReciMDFe consReciMDFe, MDFeConfiguracao cfgMdfe = null)
1414
{
15+
var config = cfgMdfe ?? MDFeConfiguracao.Instancia;
1516
var xmlValidacao = consReciMDFe.XmlString();
1617

17-
switch (MDFeConfiguracao.VersaoWebService.VersaoLayout)
18+
switch (config.VersaoWebService.VersaoLayout)
1819
{
1920
case VersaoServico.Versao100:
20-
Validador.Valida(xmlValidacao, "consReciMDFe_v1.00.xsd");
21+
Validador.Valida(xmlValidacao, "consReciMDFe_v1.00.xsd", config);
2122
break;
2223
case VersaoServico.Versao300:
23-
Validador.Valida(xmlValidacao, "consReciMDFe_v3.00.xsd");
24+
Validador.Valida(xmlValidacao, "consReciMDFe_v3.00.xsd", config);
2425
break;
2526
}
2627
}
@@ -38,11 +39,12 @@ public static XmlDocument CriaRequestWs(this MDFeConsReciMDFe consReciMDFe)
3839
return request;
3940
}
4041

41-
public static void SalvarXmlEmDisco(this MDFeConsReciMDFe consReciMDFe)
42+
public static void SalvarXmlEmDisco(this MDFeConsReciMDFe consReciMDFe, MDFeConfiguracao cfgMdfe = null)
4243
{
43-
if (MDFeConfiguracao.NaoSalvarXml()) return;
44+
var config = cfgMdfe ?? MDFeConfiguracao.Instancia;
45+
if (config.NaoSalvarXml()) return;
4446

45-
var caminhoXml = MDFeConfiguracao.CaminhoSalvarXml;
47+
var caminhoXml = config.CaminhoSalvarXml;
4648

4749
var arquivoSalvar = Path.Combine(caminhoXml, consReciMDFe.NRec + "-ped-rec.xml");
4850

MDFe.Classes/Extensoes/ExtMDFeConsSitMDFe.cs

+9-7
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,18 @@ namespace MDFe.Classes.Extencoes
1010
{
1111
public static class ExtMDFeConsSitMDFe
1212
{
13-
public static void ValidarSchema(this MDFeConsSitMDFe consSitMdfe)
13+
public static void ValidarSchema(this MDFeConsSitMDFe consSitMdfe, MDFeConfiguracao cfgMdfe = null)
1414
{
15+
var config = cfgMdfe ?? MDFeConfiguracao.Instancia;
1516
var xmlEnvio = consSitMdfe.XmlString();
1617

17-
switch (MDFeConfiguracao.VersaoWebService.VersaoLayout)
18+
switch (config.VersaoWebService.VersaoLayout)
1819
{
1920
case VersaoServico.Versao100:
20-
Validador.Valida(xmlEnvio, "consSitMDFe_v1.00.xsd");
21+
Validador.Valida(xmlEnvio, "consSitMDFe_v1.00.xsd", config);
2122
break;
2223
case VersaoServico.Versao300:
23-
Validador.Valida(xmlEnvio, "consSitMDFe_v3.00.xsd");
24+
Validador.Valida(xmlEnvio, "consSitMDFe_v3.00.xsd", config);
2425
break;
2526
}
2627
}
@@ -38,11 +39,12 @@ public static XmlDocument CriaRequestWs(this MDFeConsSitMDFe consSitMdfe)
3839
return request;
3940
}
4041

41-
public static void SalvarXmlEmDisco(this MDFeConsSitMDFe consSitMdfe)
42+
public static void SalvarXmlEmDisco(this MDFeConsSitMDFe consSitMdfe, MDFeConfiguracao cfgMdfe = null)
4243
{
43-
if (MDFeConfiguracao.NaoSalvarXml()) return;
44+
var config = cfgMdfe ?? MDFeConfiguracao.Instancia;
45+
if (config.NaoSalvarXml()) return;
4446

45-
var caminhoXml = MDFeConfiguracao.CaminhoSalvarXml;
47+
var caminhoXml = config.CaminhoSalvarXml;
4648

4749
var arquivoSalvar = Path.Combine(caminhoXml, consSitMdfe.ChMDFe + "-ped-sit.xml");
4850

MDFe.Classes/Extensoes/ExtMDFeConsStatServMDFe.cs

+9-7
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,18 @@ namespace MDFe.Classes.Extencoes
1010
{
1111
public static class ExtMDFeConsStatServMDFe
1212
{
13-
public static void ValidarSchema(this MDFeConsStatServMDFe consStatServMDFe)
13+
public static void ValidarSchema(this MDFeConsStatServMDFe consStatServMDFe, MDFeConfiguracao cfgMdfe = null)
1414
{
15+
var config = cfgMdfe ?? MDFeConfiguracao.Instancia;
1516
var xmlValidacao = consStatServMDFe.XmlString();
1617

17-
switch (MDFeConfiguracao.VersaoWebService.VersaoLayout)
18+
switch (config.VersaoWebService.VersaoLayout)
1819
{
1920
case VersaoServico.Versao100:
20-
Validador.Valida(xmlValidacao, "consStatServMDFe_v1.00.xsd");
21+
Validador.Valida(xmlValidacao, "consStatServMDFe_v1.00.xsd", config);
2122
break;
2223
case VersaoServico.Versao300:
23-
Validador.Valida(xmlValidacao, "consStatServMDFe_v3.00.xsd");
24+
Validador.Valida(xmlValidacao, "consStatServMDFe_v3.00.xsd", config);
2425
break;
2526
}
2627
}
@@ -38,11 +39,12 @@ public static XmlDocument CriaRequestWs(this MDFeConsStatServMDFe consStatServMd
3839
return request;
3940
}
4041

41-
public static void SalvarXmlEmDisco(this MDFeConsStatServMDFe consStatServMdFe)
42+
public static void SalvarXmlEmDisco(this MDFeConsStatServMDFe consStatServMdFe, MDFeConfiguracao cfgMdfe = null)
4243
{
43-
if (MDFeConfiguracao.NaoSalvarXml()) return;
44+
var config = cfgMdfe ?? MDFeConfiguracao.Instancia;
45+
if (config.NaoSalvarXml()) return;
4446

45-
var caminhoXml = MDFeConfiguracao.CaminhoSalvarXml;
47+
var caminhoXml = config.CaminhoSalvarXml;
4648

4749
var arquivoSalvar = Path.Combine(caminhoXml, "-pedido-status-servico.xml");
4850

MDFe.Classes/Extensoes/ExtMDFeCosMDFeNaoEnc.cs

+9-7
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,18 @@ public static string XmlString(this MDFeCosMDFeNaoEnc consMDFeNaoEnc)
1515
return FuncoesXml.ClasseParaXmlString(consMDFeNaoEnc);
1616
}
1717

18-
public static void ValidarSchema(this MDFeCosMDFeNaoEnc consMdFeNaoEnc)
18+
public static void ValidarSchema(this MDFeCosMDFeNaoEnc consMdFeNaoEnc, MDFeConfiguracao cfgMdfe = null)
1919
{
20+
var config = cfgMdfe ?? MDFeConfiguracao.Instancia;
2021
var xmlValidacao = consMdFeNaoEnc.XmlString();
2122

22-
switch (MDFeConfiguracao.VersaoWebService.VersaoLayout)
23+
switch (config.VersaoWebService.VersaoLayout)
2324
{
2425
case VersaoServico.Versao100:
25-
Validador.Valida(xmlValidacao, "consMDFeNaoEnc_v1.00.xsd");
26+
Validador.Valida(xmlValidacao, "consMDFeNaoEnc_v1.00.xsd", config);
2627
break;
2728
case VersaoServico.Versao300:
28-
Validador.Valida(xmlValidacao, "consMDFeNaoEnc_v3.00.xsd");
29+
Validador.Valida(xmlValidacao, "consMDFeNaoEnc_v3.00.xsd", config);
2930
break;
3031
}
3132
}
@@ -38,11 +39,12 @@ public static XmlDocument CriaRequestWs(this MDFeCosMDFeNaoEnc cosMdFeNaoEnc)
3839
return request;
3940
}
4041

41-
public static void SalvarXmlEmDisco(this MDFeCosMDFeNaoEnc cosMdFeNaoEnc)
42+
public static void SalvarXmlEmDisco(this MDFeCosMDFeNaoEnc cosMdFeNaoEnc, MDFeConfiguracao cfgMdfe = null)
4243
{
43-
if (MDFeConfiguracao.NaoSalvarXml()) return;
44+
var config = cfgMdfe ?? MDFeConfiguracao.Instancia;
45+
if (config.NaoSalvarXml()) return;
4446

45-
var caminhoXml = MDFeConfiguracao.CaminhoSalvarXml;
47+
var caminhoXml = config.CaminhoSalvarXml;
4648

4749
var arquivoSalvar = Path.Combine(caminhoXml, cosMdFeNaoEnc.CNPJ + "-ped-sit.xml");
4850

0 commit comments

Comments
 (0)