|
| 1 | +using CTe.CTeOSDocumento.Common; |
| 2 | +using DFe.Utils; |
| 3 | +using System; |
| 4 | +using System.Net; |
| 5 | +using System.Xml; |
| 6 | +using System.Xml.Serialization; |
| 7 | + |
| 8 | +namespace MDFe.Wsdl.MDFeRecepcao.Sincrono |
| 9 | +{ |
| 10 | + public class MDFeRecepcaoSinc |
| 11 | + { |
| 12 | + private readonly SoapEnvelope soapEnvelope; |
| 13 | + |
| 14 | + //Configurações do WSDL para estabelecimento da comunicação |
| 15 | + private readonly WsdlConfiguracao configuracao; |
| 16 | + |
| 17 | + /// <summary> |
| 18 | + /// Cria o cabeçalho do envelope a ser enviado e atribui as configurações do WSDL. |
| 19 | + /// </summary> |
| 20 | + /// <param name="configuracao"></param> |
| 21 | + public MDFeRecepcaoSinc(WsdlConfiguracao configuracao) |
| 22 | + { |
| 23 | + if (configuracao == null) |
| 24 | + throw new ArgumentNullException(); |
| 25 | + |
| 26 | + this.configuracao = configuracao; |
| 27 | + soapEnvelope = new SoapEnvelope(); |
| 28 | + ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; |
| 29 | + } |
| 30 | + |
| 31 | + /// <summary> |
| 32 | + /// Encapsula os dados da requisição no envelope por meio da serialização das partes e realiza a requisção ao Web Service. |
| 33 | + /// </summary> |
| 34 | + /// <param name="mdfeDadosMsg"></param> |
| 35 | + /// <returns>XmlNode</returns> |
| 36 | + public XmlNode mdfeRecepcao(XmlNode mdfeDadosMsg) |
| 37 | + { |
| 38 | + soapEnvelope.body = new ResponseBody<string> |
| 39 | + { |
| 40 | + mdfeDadosMsg = Convert.ToBase64String(Compressao.Zip(mdfeDadosMsg.OuterXml)) |
| 41 | + }; |
| 42 | + return RequestBuilderAndSender.Execute(soapEnvelope, configuracao, TipoEvento.MDFeRecepcaoSinc, "retMDFe"); |
| 43 | + } |
| 44 | + |
| 45 | + /// <summary> |
| 46 | + /// Classe base para a serialização no formato do envelope SOAP. |
| 47 | + /// </summary> |
| 48 | + [XmlRoot(ElementName = "Envelope", Namespace = "http://www.w3.org/2003/05/soap-envelope")] |
| 49 | + public class SoapEnvelope : CommonSoapEnvelope |
| 50 | + { |
| 51 | + |
| 52 | + [XmlElement(ElementName = "Body", Namespace = "http://www.w3.org/2003/05/soap-envelope")] |
| 53 | + public ResponseBody<string> body { get; set; } |
| 54 | + } |
| 55 | + |
| 56 | + /// <summary> |
| 57 | + /// Classe para o corpo do Envelope SOAP |
| 58 | + /// </summary> |
| 59 | + public class ResponseBody<T> : CommonResponseBody |
| 60 | + { |
| 61 | + [XmlElement(Namespace = "http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeRecepcaoSinc")] |
| 62 | + public T mdfeDadosMsg { get; set; } |
| 63 | + } |
| 64 | + } |
| 65 | +} |
0 commit comments