1+ using System . Security . Cryptography . X509Certificates ;
2+ using System . ServiceModel . Channels ;
3+ using System . Text ;
4+ using System . Xml . Linq ;
5+ using OpenAC . Net . Core . Extensions ;
6+ using OpenAC . Net . NFSe . Commom ;
7+ using OpenAC . Net . NFSe . Commom . Client ;
8+ using OpenAC . Net . NFSe . Commom . Interface ;
9+ using OpenAC . Net . NFSe . Commom . Types ;
10+
11+ namespace OpenAC . Net . NFSe . Providers ;
12+
13+ internal sealed class FintelISS204ServiceClient : NFSeSoapServiceClient , IServiceClient
14+ {
15+ public FintelISS204ServiceClient ( ProviderBase provider , TipoUrl tipoUrl , X509Certificate2 ? certificado ) : base ( provider , tipoUrl , certificado , SoapVersion . Soap11 )
16+ {
17+ }
18+
19+ private string Execute ( string soapAction , string message , string [ ] responseTag )
20+ {
21+ return Execute ( soapAction , message , "" , responseTag , [ "xmlns:nfse=\" http://nfse.abrasf.org.br\" " ] ) ;
22+ }
23+
24+ public string CancelarNFSe ( string ? cabec , string msg )
25+ {
26+ var message = new StringBuilder ( ) ;
27+ message . Append ( "<nfse:CancelarNfse>" ) ;
28+ message . Append ( "<nfseCabecMsg>" ) ;
29+ message . AppendCData ( EmpacotaXml ( cabec ) ) ;
30+ message . Append ( "</nfseCabecMsg>" ) ;
31+ message . Append ( "<nfseDadosMsg>" ) ;
32+ message . AppendCData ( EmpacotaXml ( msg ) ) ;
33+ message . Append ( "</nfseDadosMsg>" ) ;
34+ message . Append ( "</nfse:CancelarNfse>" ) ;
35+ return this . Execute ( "http://nfse.abrasf.org.br/CancelarNfse" , message . ToString ( ) , [ "CancelarNfseResponse" ] ) ;
36+ }
37+
38+ public string CancelarNFSeLote ( string ? cabec , string msg )
39+ {
40+ throw new System . NotImplementedException ( ) ;
41+ }
42+
43+ public string ConsultarLoteRps ( string ? cabec , string msg )
44+ {
45+ // metodo nao testado
46+ var message = new StringBuilder ( ) ;
47+ message . Append ( "<nfse:ConsultarLoteRps>" ) ;
48+
49+ message . Append ( "<nfseCabecMsg>" ) ;
50+ message . AppendCData ( EmpacotaXml ( cabec ) ) ;
51+ message . Append ( "</nfseCabecMsg>" ) ;
52+ message . Append ( "<nfseDadosMsg>" ) ;
53+ message . AppendCData ( EmpacotaXml ( msg ) ) ;
54+ message . Append ( "</nfseDadosMsg>" ) ;
55+
56+ message . Append ( "</nfse:ConsultarLoteRps>" ) ;
57+ return this . Execute ( "http://nfse.abrasf.org.br/ConsultarLoteRps" , message . ToString ( ) , [ "ConsultarLoteRpsResponse" ] ) ;
58+ }
59+
60+ public string ConsultarNFSe ( string ? cabec , string msg )
61+ {
62+ // metodo nao testado
63+ var message = new StringBuilder ( ) ;
64+ message . Append ( "<nfse:ConsultarNfseFaixa>" ) ;
65+
66+ message . Append ( "<nfseCabecMsg>" ) ;
67+ message . AppendCData ( EmpacotaXml ( cabec ) ) ;
68+ message . Append ( "</nfseCabecMsg>" ) ;
69+ message . Append ( "<nfseDadosMsg>" ) ;
70+ message . AppendCData ( EmpacotaXml ( msg ) ) ;
71+ message . Append ( "</nfseDadosMsg>" ) ;
72+
73+ message . Append ( "</nfse:ConsultarNfseFaixa>" ) ;
74+ return this . Execute ( "http://nfse.abrasf.org.br/ConsultarNfseFaixa" , message . ToString ( ) , [ "ConsultarNfseFaixaResponse" ] ) ;
75+ }
76+
77+ private string EmpacotaXml ( string conteudo )
78+ {
79+ return string . Concat ( "<?xml version=\" 1.0\" encoding=\" UTF-8\" ?>" , conteudo ) ;
80+ }
81+
82+ public string ConsultarNFSeRps ( string ? cabec , string msg )
83+ {
84+ var message = new StringBuilder ( ) ;
85+ message . Append ( "<nfse:ConsultarNfsePorRps>" ) ;
86+
87+ message . Append ( "<nfseCabecMsg>" ) ;
88+ message . AppendCData ( EmpacotaXml ( cabec ) ) ;
89+ message . Append ( "</nfseCabecMsg>" ) ;
90+ message . Append ( "<nfseDadosMsg>" ) ;
91+ message . AppendCData ( EmpacotaXml ( msg ) ) ;
92+ message . Append ( "</nfseDadosMsg>" ) ;
93+
94+ message . Append ( "</nfse:ConsultarNfsePorRps>" ) ;
95+ return this . Execute ( "http://nfse.abrasf.org.br/ConsultarNfsePorRps" , message . ToString ( ) , [ "ConsultarNfsePorRpsResponse" ] ) ;
96+ }
97+
98+ public string ConsultarSequencialRps ( string ? cabec , string msg )
99+ {
100+ throw new System . NotImplementedException ( ) ;
101+ }
102+
103+ public string ConsultarSituacao ( string ? cabec , string msg )
104+ {
105+ throw new System . NotImplementedException ( ) ;
106+ }
107+
108+ public string Enviar ( string ? cabec , string msg )
109+ {
110+ // metodo nao testado
111+ var message = new StringBuilder ( ) ;
112+ message . Append ( "<nfse:RecepcionarLoteRps>" ) ;
113+
114+ message . Append ( "<nfseCabecMsg>" ) ;
115+ message . AppendCData ( EmpacotaXml ( cabec ) ) ;
116+ message . Append ( "</nfseCabecMsg>" ) ;
117+ message . Append ( "<nfseDadosMsg>" ) ;
118+ message . AppendCData ( EmpacotaXml ( msg ) ) ;
119+ message . Append ( "</nfseDadosMsg>" ) ;
120+
121+ message . Append ( "</nfse:RecepcionarLoteRps>" ) ;
122+ return this . Execute ( "http://nfse.abrasf.org.br/RecepcionarLoteRps" , message . ToString ( ) , [ "RecepcionarLoteRpsResponse" ] ) ;
123+ }
124+
125+ public string EnviarSincrono ( string ? cabec , string msg )
126+ {
127+ var message = new StringBuilder ( ) ;
128+ message . Append ( "<nfse:RecepcionarLoteRpsSincrono>" ) ;
129+
130+ message . Append ( "<nfseCabecMsg>" ) ;
131+ message . AppendCData ( EmpacotaXml ( cabec ) ) ;
132+ message . Append ( "</nfseCabecMsg>" ) ;
133+ message . Append ( "<nfseDadosMsg>" ) ;
134+ message . AppendCData ( EmpacotaXml ( msg ) ) ;
135+ message . Append ( "</nfseDadosMsg>" ) ;
136+
137+ message . Append ( "</nfse:RecepcionarLoteRpsSincrono>" ) ;
138+ return this . Execute ( "http://nfse.abrasf.org.br/RecepcionarLoteRpsSincrono" , message . ToString ( ) , [ "RecepcionarLoteRpsSincronoResponse" ] ) ;
139+ }
140+
141+ public string SubstituirNFSe ( string ? cabec , string msg )
142+ {
143+ // m�todo n�o testado
144+ var message = new StringBuilder ( ) ;
145+ message . Append ( "<nfse:SubstituirNfse>" ) ;
146+ message . Append ( "<nfseCabecMsg>" ) ;
147+ message . AppendCData ( EmpacotaXml ( cabec ) ) ;
148+ message . Append ( "</nfseCabecMsg>" ) ;
149+ message . Append ( "<nfseDadosMsg>" ) ;
150+ message . AppendCData ( EmpacotaXml ( msg ) ) ;
151+ message . Append ( "</nfseDadosMsg>" ) ;
152+ message . Append ( "</nfse:SubstituirNfse>" ) ;
153+ return this . Execute ( "http://nfse.abrasf.org.br/SubstituirNfse" , message . ToString ( ) , [ "SubstituirNfseResponse" ] ) ;
154+ }
155+
156+ protected override string TratarRetorno ( XElement xmlDocument , string [ ] responseTag )
157+ {
158+ return xmlDocument . ElementAnyNs ( responseTag [ 0 ] ) . ElementAnyNs ( "outputXML" ) . Value ;
159+ }
160+ }
0 commit comments