forked from ZeusAutomacao/DFe.NET
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathConfiguracaoServico.cs
199 lines (173 loc) · 7.72 KB
/
ConfiguracaoServico.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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
/********************************************************************************/
/* Projeto: Biblioteca ZeusNFe */
/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */
/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */
/* */
/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */
/* Zeusdev Tecnologia LTDA ME */
/* */
/* Você pode obter a última versão desse arquivo no GitHub */
/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */
/* */
/* */
/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */
/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */
/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */
/* qualquer versão posterior. */
/* */
/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */
/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */
/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/
/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */
/* */
/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/
/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */
/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */
/* Você também pode obter uma copia da licença em: */
/* http://www.opensource.org/licenses/lgpl-license.php */
/* */
/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */
/* http://www.zeusautomacao.com.br/ */
/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */
/********************************************************************************/
using System;
using System.IO;
using NFe.Classes;
using NFe.Classes.Informacoes.Identificacao.Tipos;
using NFe.Classes.Servicos.Tipos;
namespace NFe.Utils
{
public sealed class ConfiguracaoServico
{
private static volatile ConfiguracaoServico _instancia;
private static readonly object SyncRoot = new object();
private string _diretorioSchemas;
private bool _salvarXmlServicos;
private ConfiguracaoServico()
{
Certificado = new ConfiguracaoCertificado();
}
/// <summary>
/// Configurações relativas ao Certificado Digital
/// </summary>
public ConfiguracaoCertificado Certificado { get; set; }
/// <summary>
/// Tempo máximo de espera pela resposta do webservice, em milisegundos
/// </summary>
public int TimeOut { get; set; }
/// <summary>
/// Estado de destino do webservice
/// </summary>
public Estado cUF { get; set; }
/// <summary>
/// Tipo de ambiente do webservice (Produção, Homologação)
/// </summary>
public TipoAmbiente tpAmb { get; set; }
/// <summary>
/// Tipo de Emissão da NF-e
/// </summary>
public TipoEmissao tpEmis { get; set; }
/// <summary>
/// Tipo de documento que está sendo referenciado nos webservices
/// </summary>
public ModeloDocumento ModeloDocumento { get; set; }
/// <summary>
/// Versão do serviço RecepcaoEvento
/// </summary>
public VersaoServico VersaoRecepcaoEvento { get; set; }
/// <summary>
/// Versão do serviço NfeRecepcao
/// </summary>
public VersaoServico VersaoNfeRecepcao { get; set; }
/// <summary>
/// Versão do serviço NfeRetRecepcao
/// </summary>
public VersaoServico VersaoNfeRetRecepcao { get; set; }
/// <summary>
/// Versão do serviço NfeConsultaCadastro
/// </summary>
public VersaoServico VersaoNfeConsultaCadastro { get; set; }
/// <summary>
/// Versão do serviço NfeInutilizacao
/// </summary>
public VersaoServico VersaoNfeInutilizacao { get; set; }
/// <summary>
/// Versão do serviço NfeConsultaProtocolo
/// </summary>
public VersaoServico VersaoNfeConsultaProtocolo { get; set; }
/// <summary>
/// Versão do serviço NfeStatusServico
/// </summary>
public VersaoServico VersaoNfeStatusServico { get; set; }
/// <summary>
/// Versão do serviço NFeAutorizacao
/// </summary>
public VersaoServico VersaoNFeAutorizacao { get; set; }
/// <summary>
/// Versão do serviço NFeRetAutorizacao
/// </summary>
public VersaoServico VersaoNFeRetAutorizacao { get; set; }
/// <summary>
/// Versão do serviço NFeDistribuicaoDFe
/// </summary>
public VersaoServico VersaoNFeDistribuicaoDFe { get; set; }
/// <summary>
/// Versão do serviço NfeConsultaDest
/// </summary>
public VersaoServico VersaoNfeConsultaDest { get; set; }
/// <summary>
/// Versão do serviço NfeDownloadNF
/// </summary>
public VersaoServico VersaoNfeDownloadNF { get; set; }
/// <summary>
/// Versão do serviço admCscNFCe
/// </summary>
public VersaoServico VersaoNfceAministracaoCSC { get; set; }
/// <summary>
/// Diretório onde estão aramazenados os schemas para validação
/// </summary>
public string DiretorioSchemas
{
get { return _diretorioSchemas; }
set
{
if (!string.IsNullOrEmpty(value) && !Directory.Exists(value))
throw new Exception("Diretório " + value + " não encontrado!");
_diretorioSchemas = value;
}
}
/// <summary>
/// Informar se a biblioteca deve salvar o xml de envio e de retorno
/// </summary>
public bool SalvarXmlServicos
{
get { return _salvarXmlServicos; }
set
{
if (!value)
DiretorioSalvarXml = "";
_salvarXmlServicos = value;
}
}
/// <summary>
/// Diretório onde os xmls de envio/retorno devem ser salvos
/// </summary>
public string DiretorioSalvarXml { get; set; }
/// <summary>
/// Instância do Singleton de ConfiguracaoServico
/// </summary>
public static ConfiguracaoServico Instancia
{
get
{
if (_instancia != null) return _instancia;
lock (SyncRoot)
{
if (_instancia != null) return _instancia;
_instancia = new ConfiguracaoServico();
}
return _instancia;
}
}
}
}