protected async void gvDUE_RowCommand(object sender, System.Web.UI.WebControls.GridViewCommandEventArgs e) { if (this.gvDUE.Rows.Count == 0) { return; } if (e.CommandName == "EXCLUIR") { var index = Convert.ToInt32(e.CommandArgument); var dueId = this.gvDUE.DataKeys[index]["Id"].ToString().ToInt(); var due = dueDAO.ObterDUEPorId(dueId); if (due != null) { dueDAO.ExcluirDUE(dueId); ConsultarDUEs(); } } if (e.CommandName == "GerarXML") { var index = Convert.ToInt32(e.CommandArgument); var arquivo = new GerarXML(); arquivo.DUEId = this.gvDUE.DataKeys[index]["Id"].ToString().ToInt(); arquivo.Validar(ModelState); if (!ModelState.IsValid) { return; } arquivo.Gerar(); } if (e.CommandName == "ValidarXML") { var index = Convert.ToInt32(e.CommandArgument); await ValidarXMLAsync(this.gvDUE.DataKeys[index]["Id"].ToString().ToInt()); } if (e.CommandName == "EnviarSiscomex") { var index = Convert.ToInt32(e.CommandArgument); var arquivo = new GerarXML(); arquivo.DUEId = this.gvDUE.DataKeys[index]["Id"].ToString().ToInt(); arquivo.Retificar(ModelState); } }
private async System.Threading.Tasks.Task ValidarXMLAsync(int id) { var arquivo = new GerarXML(); arquivo.DUEId = id; arquivo.Validar(ModelState); if (!ModelState.IsValid) { return; } arquivo.Gerar(); var validarXML = new ValidarXML(); var xml = dueDAO.ObterUltimoXMLGerado(arquivo.DUEId); XmlDocument documentoXML = new XmlDocument(); documentoXML.LoadXml(xml); var retorno = await validarXML.Validar(documentoXML); ViewState["RetornoSucesso"] = retorno.Sucesso; dueDAO.AtualizarXMLRetorno(id, retorno.XmlRetorno); alertaValidacao.Visible = retorno.Sucesso; if (retorno.Mensagens.Count > 0 & retorno.XmlRetorno != null) { alertaValidacao.Visible = true; ViewState["RetornoSucesso"] = null; } if (!retorno.Sucesso & retorno.XmlRetorno == null) { foreach (var erro in retorno.Mensagens) { ModelState.AddModelError(string.Empty, erro); } } else if (!retorno.Sucesso & retorno.XmlRetorno != null) { //Response.Redirect("ArquivoXML.aspx?id=" + id + "&dest=SALVAR&tipo=RETORNO", false); StringBuilder conteudo = new StringBuilder(); foreach (var erro in retorno.Mensagens) { conteudo.AppendLine(erro); } SalvarTXT(arquivo.DUE.DUE, conteudo); } }