public async Task <retConsSitNFe> ConsultarPelaChave(string chaveAcesso, string versao) { var chave = new ChaveFiscal(chaveAcesso); var consSit = new consSitNFe { chNFe = chaveAcesso, tpAmb = Configuracao.TipoAmbiente, versao = versao }; var xmlEvento = XmlUtils.ClasseParaXmlString <consSitNFe>(consSit); var arqEnv = Path.Combine("Logs", $"{DateTime.Now.Ticks}-pedConsSitNFe.xml"); await storage.SaveAsync(arqEnv, xmlEvento); var modeloDoc = chave.Modelo; var sefazUrl = Fabrica.FabricarUrl.ObterUrl(eTipoServico.ConsultaSituacaoNFe, Configuracao.TipoAmbiente, modeloDoc, Configuracao.UF); var envelope = Fabrica.SoapEnvelopeFabrica.FabricarEnvelope(eTipoServico.ConsultaSituacaoNFe, xmlEvento); var retornoXmlString = await Transmitir.TransmitirAsync(sefazUrl, envelope); var retornoXmlStringLimpa = Soap.LimparEnvelope(retornoXmlString, "retConsSitNFe").OuterXml; var arqRet = Path.Combine("Logs", $"{DateTime.Now.Ticks}-retConsSitNFe.xml"); await storage.SaveAsync(arqRet, retornoXmlStringLimpa); var retEnvEvento = new retConsSitNFe().CarregarDeXmlString(retornoXmlStringLimpa, xmlEvento); return(retEnvEvento); }
private async Task <string> PrepararTransmissao(distDFeInt distDFeInt, bool validarXmlConsulta = true) { var xml = XmlUtils.ClasseParaXmlString <distDFeInt>(distDFeInt); if (validarXmlConsulta) { Schemas.ValidarSchema(eTipoServico.NFeDistribuicaoDFe, xml, Configuracao); } var nomeArqEnv = $"{Configuracao.Emitente.CNPJ ?? Configuracao.Emitente.CPF}-{DateTime.Now.Ticks}-ped-DistDFeInt.xml"; var arqEnv = Path.Combine("Logs", nomeArqEnv); var stRet = await storage.SaveAsync(arqEnv, xml); var envelope = SoapEnvelopeFabrica.FabricarEnvelope(eTipoServico.NFeDistribuicaoDFe, xml); var sefazUrl = FabricarUrl.ObterUrl(eTipoServico.NFeDistribuicaoDFe, Configuracao.TipoAmbiente, eModeloDocumento.NFe, eUF.AN); var retorno = await Transmitir.TransmitirAsync(sefazUrl, envelope); var retornoLimpo = Soap.LimparEnvelope(retorno, "retDistDFeInt").OuterXml; var nomeArqRetorno = $"{Configuracao.Emitente.CNPJ ?? Configuracao.Emitente.CPF}-{DateTime.Now.Ticks}-retDistDFeInt.xml"; var arqRet = Path.Combine("Logs", nomeArqRetorno); await storage.SaveAsync(arqRet, retornoLimpo); return(retornoLimpo); }