/// <summary> /// Efetua a validação de qualquer XML, NFE, Cancelamento, Inutilização, etc..., e retorna se está ok ou não /// </summary> /// <param name="Arquivo">Nome do arquivo XML a ser validado e assinado</param> /// <param name="PastaValidar">Nome da pasta onde fica os arquivos a serem validados</param> /// <param name="PastaXMLErro">Nome da pasta onde é para gravar os XML´s validados que apresentaram erro.</param> /// <param name="PastaXMLRetorno">Nome da pasta de retorno onde será gravado o XML com o status da validação</param> /// <param name="Certificado">Certificado digital a ser utilizado na validação</param> /// <by>Wandrey Mundin Ferreira</by> /// <date>28/05/2009</date> public void ValidarAssinarXML(string Arquivo, Core.Empresa empresa) { //Assinar o XML se tiver tag para assinar AssinaturaDigital oAD = new AssinaturaDigital(); oAD.Assinar(Arquivo, empresa, empresa.CodigoMunicipio); }
/// <summary> /// Encriptar a tag Assinatura quando for município de Blumenau - SC /// </summary> private void EncryptAssinatura(Core.Empresa empresa) { string arquivoXML = NomeArquivoXML; XmlDocument doc = new XmlDocument(); doc.Load(arquivoXML); XmlNodeList pedidoCancelamentoNFeList = doc.GetElementsByTagName("PedidoCancelamentoNFe"); foreach (XmlNode pedidoCancelamentoNFeNode in pedidoCancelamentoNFeList) { XmlElement pedidoCancelamentoNFeElemento = (XmlElement)pedidoCancelamentoNFeNode; XmlNodeList detalheList = doc.GetElementsByTagName("Detalhe"); foreach (XmlNode detalheNode in detalheList) { XmlElement detalheElement = (XmlElement)detalheNode; if (detalheElement.GetElementsByTagName("AssinaturaCancelamento").Count != 0) { //Encryptar a tag Assinatura detalheElement.GetElementsByTagName("AssinaturaCancelamento")[0].InnerText = Criptografia.SignWithRSASHA1(empresa.X509Certificado, detalheElement.GetElementsByTagName("AssinaturaCancelamento")[0].InnerText); } } } //Salvar o XML com as alterações efetuadas doc.Save(arquivoXML); }
/// <summary> /// Encriptar a tag Assinatura quando for município de Blumenau - SC /// </summary> private void EncryptAssinatura(Core.Empresa empresa) { string arquivoXML = NomeArquivoXML; XmlDocument doc = new XmlDocument(); doc.Load(arquivoXML); XmlNodeList pedidoEnvioLoteRPSList = doc.GetElementsByTagName("PedidoEnvioLoteRPS"); foreach (XmlNode pedidoEnvioLoteRPSNode in pedidoEnvioLoteRPSList) { XmlElement pedidoEnvioLoteRPSElemento = (XmlElement)pedidoEnvioLoteRPSNode; XmlNodeList rpsList = doc.GetElementsByTagName("RPS"); foreach (XmlNode rpsNode in rpsList) { XmlElement rpsElement = (XmlElement)rpsNode; if (rpsElement.GetElementsByTagName("Assinatura").Count != 0) { //Encryptar a tag Assinatura rpsElement.GetElementsByTagName("Assinatura")[0].InnerText = Criptografia.SignWithRSASHA1(empresa.X509Certificado, rpsElement.GetElementsByTagName("Assinatura")[0].InnerText); } } } //Salvar o XML com as alterações efetuadas doc.Save(arquivoXML); }
/// <summary> /// Fazer a leitura do conteúdo do XML de cancelamento de NFS-e e disponibilizar conteúdo em um objeto para analise /// </summary> /// <param name="arquivoXML">Arquivo XML que é para efetuar a leitura</param> private void PedCanNfse(Core.Empresa empresa, string arquivoXML) { XmlDocument doc = new XmlDocument(); doc.Load(arquivoXML); XmlNodeList infCancList = doc.GetElementsByTagName("CancelarNfseEnvio"); foreach (XmlNode infCancNode in infCancList) { XmlElement infCancElemento = (XmlElement)infCancNode; } }
/// <summary> /// Fazer a leitura do conteúdo do XML de lote rps e disponibiliza o conteúdo em um objeto para analise /// </summary> /// <param name="arquivoXML">Arquivo XML que é para efetuar a leitura</param> private void EnvLoteRps(Core.Empresa emp, string arquivoXML) { //int emp = Functions.FindEmpresaByThread(); XmlDocument doc = new XmlDocument(); doc.Load(arquivoXML); XmlNodeList infEnvioList = doc.GetElementsByTagName("EnviarLoteRpsEnvio"); foreach (XmlNode infEnvioNode in infEnvioList) { XmlElement infEnvioElemento = (XmlElement)infEnvioNode; } }
/// <summary> /// Assina o XML sobrepondo-o /// </summary> /// <param name="arqXMLAssinar">Nome do arquivo XML a ser assinado</param> /// <param name="x509Certificado">Certificado a ser utilizado na assinatura</param> /// <by>Wandrey Mundin Ferreira</by> /// <date>16/04/2009</date> public void Assinar(string arqXMLAssinar, Core.Empresa emp, int UFCod) { TipoArquivoXML v = new TipoArquivoXML(arqXMLAssinar, UFCod); if (!String.IsNullOrEmpty(v.TagAssinatura)) { this.Assinar(arqXMLAssinar, v.TagAssinatura, v.TagAtributoId, emp.X509Certificado, emp); } //Assinar o lote if (!String.IsNullOrEmpty(v.TagLoteAssinatura)) { this.Assinar(arqXMLAssinar, v.TagLoteAssinatura, v.TagLoteAtributoId, emp.X509Certificado, emp); } }
public Core.RespostaEnvioNFSe EnviarLoteRps(Core.Empresa empresa, Core.ArquivosEnvio localArquivos) { try { var serializar = new Layouts.Serializador(); var envio = new NFSE.Net.Envio.Processar(); var lote = serializar.LerXml <Layouts.Betha.EnviarLoteRpsEnvio>(localArquivos.SalvarEnvioLoteEm); ExecutarConsultas(() => { envio.ProcessaArquivo(empresa, localArquivos.SalvarEnvioLoteEm, localArquivos.SalvarRetornoEnvioLoteEm, Servicos.RecepcionarLoteRps); }); bool erro = false; var respostaEnvioLote = serializar.TryLerXml <Layouts.Betha.EnviarLoteRpsResposta>(localArquivos.SalvarRetornoEnvioLoteEm, out erro); while (true) { System.Threading.Thread.Sleep(1000); var respostaSituacao = ConsultarSituacaoLote(empresa, respostaEnvioLote, localArquivos); if (respostaSituacao.Items[0] is ListaMensagemRetorno) { if (((ListaMensagemRetorno)respostaSituacao.Items[0]).MensagemRetorno[0].Codigo == "E92") //Lote ainda em processamento, tentando denovo. { continue; } //else if (((ListaMensagemRetorno)respostaSituacao.Items[0]).MensagemRetorno[0].Codigo == "E10") //RPS já enviado, passar para o Consulta RPS e verificar se a data de emissão é a mesma //{ // var respostaRps = ConsultarRps(empresa, lote.LoteRps.ListaRps[0].InfRps.IdentificacaoRps, localArquivos); // var listaErros = new ListaMensagemRetorno() { MensagemRetorno = respostaRps.ListaMensagemRetorno.Length > 0 ? respostaRps.ListaMensagemRetorno : null }; // return MontarResposta(lote, listaErros, null, respostaRps); //} return(MontarResposta(lote, (ListaMensagemRetorno)respostaSituacao.Items[0], null, null)); } else { break; } } var respostaLote = ConsultarLote(empresa, respostaEnvioLote, localArquivos); return(MontarResposta(lote, null, respostaLote.ListaNfse, null)); } catch (System.Reflection.TargetInvocationException e) { throw e.InnerException; } }
private void button6_Click(object sender, EventArgs e) { System.Net.ServicePointManager.Expect100Continue = false; Layouts.Betha.EnviarLoteRpsEnvio envio = RetornarRps(); Core.Empresa empresa = RetornaEmpresa(false); var envioCompleto = new Envio.EnvioCompleto(); var localSalvarArquivo = Core.ArquivosEnvio.GerarCaminhos(envio.LoteRps.Id, System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "NotaServico")); envioCompleto.SalvarLoteRps(envio, localSalvarArquivo); var resposta = envioCompleto.EnviarLoteRps(empresa, localSalvarArquivo); foreach (var item in resposta) { MessageBox.Show(item.MensagemErro); } }
/// <summary> /// Reseta o certificado da empresa e recria o mesmo /// </summary> /// <param name="index">identificador da empresa</param> /// <returns></returns> public static X509Certificate2 ResetCertificado(Core.Empresa empresa) { empresa.X509Certificado.Reset(); empresa.X509Certificado = null; GC.Collect(); GC.WaitForPendingFinalizers(); //Ajustar o certificado digital de String para o tipo X509Certificate2 X509Store store = new X509Store("MY", StoreLocation.CurrentUser); store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly); X509Certificate2Collection collection = (X509Certificate2Collection)store.Certificates; X509Certificate2Collection collection1 = null; if (!string.IsNullOrEmpty(empresa.CertificadoThumbPrint)) { collection1 = (X509Certificate2Collection)collection.Find(X509FindType.FindByThumbprint, empresa.CertificadoThumbPrint, false); } else { collection1 = (X509Certificate2Collection)collection.Find(X509FindType.FindBySubjectDistinguishedName, empresa.Certificado, false); } for (int i = 0; i < collection1.Count; i++) { //Verificar a validade do certificado if (DateTime.Compare(DateTime.Now, collection1[i].NotAfter) == -1) { empresa.X509Certificado = collection1[i]; break; } } //Se não encontrou nenhum certificado com validade correta, vou pegar o primeiro certificado, porem vai travar na hora de tentar enviar a nota fiscal, por conta da validade. Wandrey 06/04/2011 if (empresa.X509Certificado == null && collection1.Count > 0) { empresa.X509Certificado = collection1[0]; } return(empresa.X509Certificado); }
private Core.Empresa RetornaEmpresa(bool criptografado) { var empresa = new Core.Empresa(); empresa.Nome = "Empresa teste"; empresa.CNPJ = "03657739000169"; empresa.InscricaoMunicipal = "24082-6"; empresa.CertificadoArquivo = @"C:\Users\danimaribeiro\SkyDrive\Infoger\Certificados\INFOGER.pfx"; if (criptografado) { empresa.CertificadoSenha = Certificado.Criptografia.criptografaSenha("123456"); } else { empresa.CertificadoSenha = "123456"; } empresa.tpAmb = 2; empresa.tpEmis = 1; empresa.CodigoMunicipio = 4204202; return(empresa); }
private Layouts.Betha.ConsultarLoteRpsResposta ConsultarLote(Core.Empresa empresa, EnviarLoteRpsResposta protocolo, Core.ArquivosEnvio localArquivos) { var consultaSituacaoLote = new Layouts.Betha.ConsultarLoteRpsEnvio(); consultaSituacaoLote.Prestador = new tcIdentificacaoPrestador(); consultaSituacaoLote.Prestador.Cnpj = empresa.CNPJ; consultaSituacaoLote.Prestador.InscricaoMunicipal = empresa.InscricaoMunicipal; consultaSituacaoLote.Protocolo = protocolo.Items[2].ToString(); var serializar = new Layouts.Serializador(); serializar.SalvarXml <Layouts.Betha.ConsultarLoteRpsEnvio>(consultaSituacaoLote, localArquivos.SalvarConsultaLoteRpsEnvioEm); var envio = new NFSE.Net.Envio.Processar(); ExecutarConsultas(() => { envio.ProcessaArquivo(empresa, localArquivos.SalvarConsultaLoteRpsEnvioEm, localArquivos.SalvarConsultaLoteRpsRespostaEm, Servicos.ConsultarLoteRps); }); return(serializar.LerXml <Layouts.Betha.ConsultarLoteRpsResposta>(localArquivos.SalvarConsultaLoteRpsRespostaEm)); }
private Layouts.Betha.ConsultarNfseRpsResposta ConsultarRps(Core.Empresa empresa, tcIdentificacaoRps rps, Core.ArquivosEnvio localArquivos) { var consultaRps = new Layouts.Betha.ConsultarNfsePorRpsEnvio(); consultaRps.Prestador = new tcIdentificacaoPrestador(); consultaRps.Prestador.Cnpj = empresa.CNPJ; consultaRps.Prestador.InscricaoMunicipal = empresa.InscricaoMunicipal; consultaRps.IdentificacaoRps = rps; var serializar = new Layouts.Serializador(); serializar.SalvarXml <Layouts.Betha.ConsultarNfsePorRpsEnvio>(consultaRps, localArquivos.SalvarConsultaLoteRpsEnvioEm); var envio = new NFSE.Net.Envio.Processar(); ExecutarConsultas(() => { envio.ProcessaArquivo(empresa, localArquivos.SalvarConsultaLoteRpsEnvioEm, localArquivos.SalvarConsultaLoteRpsRespostaEm, Servicos.ConsultarNfsePorRps); }); return(serializar.LerXml <Layouts.Betha.ConsultarNfseRpsResposta>(localArquivos.SalvarConsultaLoteRpsRespostaEm)); }
private Core.Empresa RetornaEmpresa(bool criptografado) { var empresa = new Core.Empresa(); empresa.Nome = "Empresa teste"; empresa.CNPJ = "10793118000178"; empresa.InscricaoMunicipal = "10127260010"; //Inscrição Municipal da T2Ti criada em Belo Horizonte apenas para testes empresa.CertificadoArquivo = @"13779920_T2TI_TECNOLOGIA_DA_INFORMACAO_LTDA_ME10793118000178.p12"; if (criptografado) { empresa.CertificadoSenha = Certificado.Criptografia.criptografaSenha("00"); } else { empresa.CertificadoSenha = "00"; } empresa.tpAmb = 2; empresa.tpEmis = 1; empresa.CodigoMunicipio = 3106200; return(empresa); }
public static WebServiceProxy DefinirWS(Servicos servico, Core.Empresa emp, int cUF, int tpAmb, int tpEmis, PadroesNFSe padraoNFSe) { WebServiceProxy wsProxy = null; string key = servico + " " + cUF + " " + tpAmb + " " + tpEmis; while (true) { if (emp.WSProxy.ContainsKey(key)) { wsProxy = emp.WSProxy[key]; } else { //Definir a URI para conexão com o Webservice string Url = ConfiguracaoApp.DefLocalWSDL(cUF, tpAmb, tpEmis, servico); wsProxy = new WebServiceProxy(Url, emp.X509Certificado, padraoNFSe); emp.WSProxy.Add(key, wsProxy); } break; } return(wsProxy); }
/// <summary> /// O método assina digitalmente o arquivo XML passado por parâmetro e /// grava o XML assinado com o mesmo nome, sobreponto o XML informado por parâmetro. /// Disponibiliza também uma propriedade com uma string do xml assinado (this.vXmlStringAssinado) /// </summary> /// <param name="arqXMLAssinar">Nome do arquivo XML a ser assinado</param> /// <param name="tagAssinatura">Nome da tag onde é para ficar a assinatura</param> /// <param name="tagAtributoId">Nome da tag que tem o atributo ID, tag que vai ser assinada</param> /// <param name="x509Cert">Certificado a ser utilizado na assinatura</param> /// <param name="empresa">Índice da empresa que está solicitando a assinatura</param> /// <remarks> /// Autor: Wandrey Mundin Ferreira /// Data: 04/06/2008 /// </remarks> private void Assinar(string arqXMLAssinar, string tagAssinatura, string tagAtributoId, X509Certificate2 x509Cert, Core.Empresa empresa) { StreamReader SR = null; try { //Abrir o arquivo XML a ser assinado e ler o seu conteúdo SR = File.OpenText(arqXMLAssinar); string xmlString = SR.ReadToEnd(); SR.Close(); SR = null; // Create a new XML document. XmlDocument doc = new XmlDocument(); // Format the document to ignore white spaces. doc.PreserveWhitespace = false; // Load the passed XML file using it’s name. doc.LoadXml(xmlString); if (doc.GetElementsByTagName(tagAssinatura).Count == 0) { throw new Exception("A tag de assinatura " + tagAssinatura.Trim() + " não existe no XML. (Código do Erro: 5)"); } else if (doc.GetElementsByTagName(tagAtributoId).Count == 0) { throw new Exception("A tag de assinatura " + tagAtributoId.Trim() + " não existe no XML. (Código do Erro: 4)"); } // Existe mais de uma tag a ser assinada else { XmlDocument XMLDoc; XmlNodeList lists = doc.GetElementsByTagName(tagAssinatura); foreach (XmlNode nodes in lists) { foreach (XmlNode childNodes in nodes.ChildNodes) { if (!childNodes.Name.Equals(tagAtributoId)) { continue; } if (childNodes.NextSibling != null && childNodes.NextSibling.Name.Equals("Signature")) { continue; } // Create a reference to be signed Reference reference = new Reference(); reference.Uri = ""; // pega o uri que deve ser assinada XmlElement childElemen = (XmlElement)childNodes; if (childElemen.GetAttributeNode("Id") != null) { reference.Uri = "#" + childElemen.GetAttributeNode("Id").Value; } else if (childElemen.GetAttributeNode("id") != null) { reference.Uri = "#" + childElemen.GetAttributeNode("id").Value; } XmlDocument documentoNovo = new XmlDocument(); documentoNovo.LoadXml(nodes.OuterXml); // Create a SignedXml object. SignedXml signedXml = new SignedXml(documentoNovo); // Add the key to the SignedXml document signedXml.SigningKey = x509Cert.PrivateKey; // Add an enveloped transformation to the reference. XmlDsigEnvelopedSignatureTransform env = new XmlDsigEnvelopedSignatureTransform(); reference.AddTransform(env); XmlDsigC14NTransform c14 = new XmlDsigC14NTransform(); reference.AddTransform(c14); // Add the reference to the SignedXml object. signedXml.AddReference(reference); // Create a new KeyInfo object KeyInfo keyInfo = new KeyInfo(); // Load the certificate into a KeyInfoX509Data object // and add it to the KeyInfo object. keyInfo.AddClause(new KeyInfoX509Data(x509Cert)); // Add the KeyInfo object to the SignedXml object. signedXml.KeyInfo = keyInfo; signedXml.ComputeSignature(); // Get the XML representation of the signature and save // it to an XmlElement object. XmlElement xmlDigitalSignature = signedXml.GetXml(); // Gravar o elemento no documento XML nodes.AppendChild(doc.ImportNode(xmlDigitalSignature, true)); } } XMLDoc = new XmlDocument(); XMLDoc.PreserveWhitespace = false; XMLDoc = doc; // Atualizar a string do XML já assinada string StringXMLAssinado = XMLDoc.OuterXml; // Gravar o XML Assinado no HD StreamWriter SW_2 = File.CreateText(arqXMLAssinar); SW_2.Write(StringXMLAssinado); SW_2.Close(); } } catch (System.Security.Cryptography.CryptographicException ex) { #region #10316 /* * Solução para o problema do certificado do tipo A3 * Marcelo * 29/07/2013 */ #if DEBUG Debug.WriteLine("O erro CryptographicException foi lançado"); #endif x509Cert = Empresa.ResetCertificado(empresa); throw new Exception("O certificado deverá ser reiniciado.\r\n Retire o certificado.\r\nAguarde o LED terminar de piscar.\r\n Recoloque o certificado e informe o PIN novamente.\r\n" + ex.ToString());// #12342 concatenar com a mensagem original #endregion } finally { if (SR != null) { SR.Close(); } } }
public DadosPedSitNfseRps(Core.Empresa empresa) { tpEmis = empresa.tpEmis; tpAmb = empresa.tpAmb; cMunicipio = empresa.CodigoMunicipio; }
public DadosEnvLoteRps(Core.Empresa emp) { tpEmis = emp.tpEmis; tpAmb = emp.tpAmb; cMunicipio = emp.CodigoMunicipio; }
public Core.RespostaCancelamentoNfse CancelarNfse(Layouts.Betha.CancelarNfseEnvio envioCancelamento, Core.Empresa empresa, Core.ArquivosEnvio localArquivos) { try { ValidarCaminhos(localArquivos); var serializar = new Layouts.Serializador(); serializar.SalvarXml <Layouts.Betha.CancelarNfseEnvio>(envioCancelamento, localArquivos.SalvarCancelarNfseEnvioEm); var envio = new NFSE.Net.Envio.Processar(); ExecutarConsultas(() => { envio.ProcessaArquivo(empresa, localArquivos.SalvarCancelarNfseEnvioEm, localArquivos.SalvarCancelarNfseRespostaEm, Servicos.CancelarNfse); }); bool erro = false; var respostaEnvioLote = serializar.TryLerXml <Layouts.Betha.CancelarNfseReposta>(localArquivos.SalvarCancelarNfseRespostaEm, out erro); if (respostaEnvioLote != null) { if (respostaEnvioLote.Item is ListaMensagemRetorno) { var retorno = new Core.RespostaCancelamentoNfse(); ListaMensagemRetorno mensagensErro = (ListaMensagemRetorno)respostaEnvioLote.Item; retorno.Sucesso = false; retorno.CodigoErro = mensagensErro.MensagemRetorno[0].Codigo; retorno.Correcao = mensagensErro.MensagemRetorno[0].Correcao; retorno.MensagemErro = mensagensErro.MensagemRetorno[0].Mensagem; return(retorno); } else { var retorno = new Core.RespostaCancelamentoNfse(); tcCancelamentoNfse cancelamento = (tcCancelamentoNfse)respostaEnvioLote.Item; retorno.Sucesso = cancelamento.Confirmacao.InfConfirmacaoCancelamento.Sucesso; retorno.DataHoraCancelamento = cancelamento.Confirmacao.InfConfirmacaoCancelamento.DataHora; retorno.NumeroNfse = cancelamento.Confirmacao.Pedido.InfPedidoCancelamento.IdentificacaoNfse.Numero; return(retorno); } } else { return new Core.RespostaCancelamentoNfse() { Sucesso = false, CodigoErro = "00", MensagemErro = "Erro desconhecido" } }; } catch (System.Reflection.TargetInvocationException e) { throw e.InnerException; } }
/// <summary> /// Exporta os WSDLs e Schemas da DLL para as pastas do UniNFe /// </summary> public void load(Core.Empresa empresa) { List <ArquivoItem> ListArqsAtualizar = new List <ArquivoItem>(); UpdateWSDL(ListArqsAtualizar); try { System.Reflection.Assembly ass = System.Reflection.Assembly.LoadFrom("NFe.Components.Wsdl.dll"); string[] x = ass.GetManifestResourceNames(); if (x.GetLength(0) > 0) { foreach (string s in x) { string fileoutput = null; switch (Propriedade.TipoAplicativo) { case TipoAplicativo.Nfse: if (s.StartsWith("NFe.Components.Wsdl.NFse.")) { fileoutput = s.Replace("NFe.Components.Wsdl.NFse.", Propriedade.PastaExecutavel + "\\"); } break; } if (fileoutput == null) { continue; } if (fileoutput.ToLower().EndsWith(".xsd")) { /// Ex: NFe.Components.Wsdl.NFe.NFe.xmldsig-core-schema_v1.01.xsd /// /// pesquisa pelo nome do XSD int plast = fileoutput.ToLower().LastIndexOf("_v"); if (plast == -1) { plast = fileoutput.IndexOf(".xsd") - 1; } while (fileoutput[plast] != '.') { --plast; } string fn = fileoutput.Substring(plast + 1); fileoutput = fileoutput.Substring(0, plast).Replace(".", "\\") + "\\" + fn; } else { fileoutput = (fileoutput.Substring(0, fileoutput.LastIndexOf('.')) + "#" + fileoutput.Substring(fileoutput.LastIndexOf('.') + 1)).Replace(".", "\\").Replace("#", "."); } //fileoutput = fileoutput.Replace(NFe.Components.Propriedade.PastaExecutavel, "e:\\temp"); //System.Windows.Forms.MessageBox.Show(s + "\r\n"+fileoutput+"\r\n"+Path.GetFileName(fileoutput)); //continue; FileInfo fi = new FileInfo(fileoutput); ArquivoItem item = new ArquivoItem(); item = null; if (fi.Exists) //danasa 9-2013 { if (ListArqsAtualizar.Count > 0) { item = ListArqsAtualizar.FirstOrDefault(f => f.Arquivo == fi.Name); } } // A comparação é feita (fi.LastWriteTime != item.Data) // Pois intende-se que se a data do arquivo que esta na pasta do UniNFe for superior a data // de quando foi feita a ultima atualizacao do UniNfe, significa que ele foi atualizado manualmente e não devemos // sobrepor o WSDL ou SCHEMA do Usuario - Renan 26/03/2013 if (item == null || !(fi.LastWriteTime.ToString("dd/MM/yyyy") != item.Data.ToString("dd/MM/yyyy"))) { if (item == null || !item.Manual) { using (StreamReader FileReader = new StreamReader(ass.GetManifestResourceStream(s))) { if (!Directory.Exists(Path.GetDirectoryName(fileoutput))) { Directory.CreateDirectory(Path.GetDirectoryName(fileoutput)); } using (StreamWriter FileWriter = new StreamWriter(fileoutput)) { FileWriter.Write(FileReader.ReadToEnd()); FileWriter.Close(); } } } } else if (item != null) { item.Manual = true; } } } GravarVersoesWSDLs(ListArqsAtualizar); } catch (Exception ex) { Auxiliar.WriteLog(ex.ToString()); } }
/// <summary> /// Definir o webservice que será utilizado para o envio do XML /// </summary> /// <param name="servico">Serviço que será executado</param> /// <param name="emp">Index da empresa que será executado o serviço</param> /// <param name="cUF">Código da UF</param> /// <param name="tpAmb">Código do ambiente que será acessado</param> /// <param name="tpEmis">Tipo de emissão do XML</param> /// <param name="versaoNFe">Versão da NFe (1 ou 2)</param> /// <returns>Retorna o objeto do serviço</returns> /// <remarks> /// Autor: Wandrey Mundin Ferreira /// Data: 04/04/2011 /// </remarks> public static WebServiceProxy DefinirWS(Servicos servico, Core.Empresa emp, int cUF, int tpAmb, int tpEmis) { return(DefinirWS(servico, emp, cUF, tpAmb, tpEmis, PadroesNFSe.NaoIdentificado)); }