private static void ValidarSchemaEventoContainer(EventoContainer container, versao versao, ConfiguracaoServico configuracaoServico = null) { if (container.GetType() == typeof(evCancCTe)) { var evCancCTe = (evCancCTe)container; var xmlEventoCancelamento = evCancCTe.ObterXmlString(); switch (versao) { case versao.ve200: Validador.Valida(xmlEventoCancelamento, "evCancCTe_v2.00.xsd", configuracaoServico); break; case versao.ve300: Validador.Valida(xmlEventoCancelamento, "evCancCTe_v3.00.xsd", configuracaoServico); break; default: throw new InvalidOperationException("Nos achamos um erro na hora de validar o schema, " + "a versão está inválida, somente é permitido " + "versão 2.00 é 3.00"); } } if (container.GetType() == typeof(evCCeCTe)) { var evCCeCTe = (evCCeCTe)container; var xmlEventoCCe = evCCeCTe.ObterXmlString(); switch (versao) { case versao.ve200: Validador.Valida(xmlEventoCCe, "evCCeCTe_v2.00.xsd", configuracaoServico); break; case versao.ve300: Validador.Valida(xmlEventoCCe, "evCCeCTe_v3.00.xsd", configuracaoServico); break; default: throw new InvalidOperationException("Nos achamos um erro na hora de validar o schema, " + "a versão está inválida, somente é permitido " + "versão 2.00 é 3.00"); } } if (container.GetType() == typeof(evPrestDesacordo)) { var evPrestDesacordo = (evPrestDesacordo)container; var xmlEventoCCe = evPrestDesacordo.ObterXmlString(); switch (versao) { case versao.ve200: Validador.Valida(xmlEventoCCe, "evPrestDesacordo_v2.00.xsd", configuracaoServico); break; case versao.ve300: Validador.Valida(xmlEventoCCe, "evPrestDesacordo_v3.00.xsd", configuracaoServico); break; default: throw new InvalidOperationException("Nos achamos um erro na hora de validar o schema, " + "a versão está inválida, somente é permitido " + "versão 2.00 é 3.00"); } } }
//Vou manter para evitar quebra de código pois a classe e o metodo são publicos public static eventoCTe CriaEvento(CTeEletronico cte, CTeTipoEvento cTeTipoEvento, int sequenciaEvento, EventoContainer container, ConfiguracaoServico configuracaoServico = null) { return(CriaEvento(cTeTipoEvento, sequenciaEvento, cte.Chave(), cte.infCte.emit.CNPJ, container, configuracaoServico)); }
public retEventoCTe Executar(TipoEvento tipoEvento, int sequenciaEvento, string chave, string cnpj, EventoContainer container) { var evento = FactoryEvento.CriaEvento(tipoEvento, sequenciaEvento, chave, cnpj, container); evento.Assina(); evento.ValidarSchema(); evento.SalvarXmlEmDisco(); var webService = WsdlFactory.CriaWsdlCteEvento(); var retornoXml = webService.cteRecepcaoEvento(evento.CriaXmlRequestWs()); var retorno = retEventoCTe.LoadXml(retornoXml.OuterXml, evento); retorno.SalvarXmlEmDisco(); return(retorno); }
public retEventoCTe Executar(CteEletronico cte, int sequenciaEvento, EventoContainer container, TipoEvento tipoEvento) { return(Executar(tipoEvento, sequenciaEvento, cte.Chave(), cte.infCte.emit.CNPJ, container)); }
public static eventoCTe CriaEvento(TipoEvento tipoEvento, int sequenciaEvento, string chave, string cnpj, EventoContainer container) { var configuracaoServico = ConfiguracaoServico.Instancia; var id = new StringBuilder("ID"); id.Append((int)tipoEvento); id.Append(chave); id.Append(sequenciaEvento.ToString("D2")); return(new eventoCTe { versao = configuracaoServico.VersaoLayout, infEvento = new infEventoEnv { tpAmb = configuracaoServico.tpAmb, CNPJ = cnpj, cOrgao = configuracaoServico.cUF, chCTe = chave, dhEvento = DateTime.Now, nSeqEvento = sequenciaEvento, tpEvento = tipoEvento, detEvento = new detEvento { versaoEvento = configuracaoServico.VersaoLayout, EventoContainer = container }, Id = id.ToString() } }); }
//Vou manter para evitar quebra de código pois a classe e o metodo são publicos public static eventoCTe CriaEvento(CTeEletronico cte, TipoEvento tipoEvento, int sequenciaEvento, EventoContainer container) { return(CriaEvento(tipoEvento, sequenciaEvento, cte.Chave(), cte.infCte.emit.CNPJ, container)); }
public async Task <retEventoCTe> ExecutarAsync(CteEletronico cte, int sequenciaEvento, EventoContainer container, CTeTipoEvento cTeTipoEvento) { return(await ExecutarAsync(cTeTipoEvento, sequenciaEvento, cte.Chave(), cte.infCte.emit.CNPJ, container)); }