Ir para conteúdo

rtavix

Members
  • Total de itens

    90
  • Registro em

  • Última visita

Reputação

0 Comum

Sobre rtavix

  1. rtavix

    nullreferenceexception was unhandled by user code

    Quintelab, valeu, consegui resolver.
  2. rtavix

    nullreferenceexception was unhandled by user code

    Recebi o seguinte erro: Nunca vi isso igual, como resolvo isso? nullreferenceexception was unhandled by user code Meus códigos de acordo com o erro da mensagem: [NullReferenceException: Referência de objeto não definida para uma instância de um objeto.] SDPJDominio.DataAccess.ProcessoInteressadoDAO.InserirOuAtualizar(ProcessoInteressado tipoDoc) in D:\Repositório SVN\SDP\SDPJ\branches\SDPJ-V3.1.0\SDPJ-102\SDPJDominio\DataAccess\ProcessoInteressadoDAO.cs:41 SDPJDominio.APL.AplProcessoInteressado.salvar(ProcessoInteressado processoInteressado) in D:\Repositório SVN\SDP\SDPJ\branches\SDPJ-V3.1.0\SDPJ-102\SDPJDominio\APL\AplProcessoInteressado.cs:15 SDPJView.ImportacaoProcessoView.ImportacaoProcesso.importar_Click(Object sender, EventArgs e) in D:\Repositório SVN\SDP\SDPJ\branches\SDPJ-V3.1.0\SDPJ-102\SDPJView\ImportacaoProcessoView\ImportacaoProcesso.aspx.cs:158 System.Web.UI.WebControls.Button.OnClick(EventArgs e) +9669714 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +108 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +12 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +15 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +35 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3562 public static void InserirOuAtualizar(ProcessoInteressado tipoDoc) { ISession sessao = NhibernateHelper.SessaoCorrente; ITransaction transacao = sessao.BeginTransaction();// O erro cai aqui nessa linha 41 try { sessao.Clear(); sessao.SaveOrUpdate(tipoDoc); transacao.Commit(); } catch (Exception e) { transacao.Rollback(); throw new Exception(e.ToString()); } } public void salvar(ProcessoInteressado processoInteressado) { ProcessoInteressadoDAO.InserirOuAtualizar(processoInteressado);// Aqui é linha 15 } if (listaGravarProcInter.Count != 0) { foreach (ProcessoInteressado item in listaGravarProcInter) { aplProcessoInteressado.salvar(item);// linha 158 } }
  3. rtavix

    Não carrega todos os logs na tela

    Preciso da ajuda dos amigos dos fóruns em uma seguinte situação, na minha planilha possuo os seguintes nomes: Simone Martins Teixeira - Linha 6 Jéssica Leal Silveira Marchiori Mantuan- Linha 7 Eduardo Gripp Jabôr- Linha 8 Mayllon Vinicius Bitencourt- Linha 9 Regina de Castro Borges Abreu- Linha 10 Douglas de Sousa Rodrigues- Linha 11 Douglas de Sousa Rodrigues- Linha 12 Evaristo Almeida da Silva- Linha 13 Porém somente é exibido no meu log: Log de Importação: O interessado SIMONE MARTINS TEIXEIRA, informado na linha 6 foi adicionado novamente ao processo 0000112-75.2016.8.08.0012 O interessado REGINA DE CASTRO BORGES ABREU, informado na linha 10 foi adicionado novamente ao processo 0000051-63.2017.8.08.0051 Os demais logs não aparece. Ao compilar o meu código, verifiquei que os demais interessados não passa nessa linha: log.Append("O interessado " + processo.Interessado.Nome + ", informado na linha " + (linha["indice"]) + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>"); Somente a Simone e Regina que cai dentro do log. Essa é a parte do meu código que acontece isso: foreach (var linha in (IEnumerable<DataRow>)dados) { i++; List<Processo> listaProcessoExistente = new List<Processo>(); Processo processo = null; if (processo != null) { //se o processo não for nulo busco todos procinter relacionados a ele List<ProcessoInteressado> listaprocinter = aplProcessoInteressado.consultarPorIdProcesso(processo.Codigo); if (listaprocinter.Exists(o => o.Interessado == interessado)) log.Append("O interessado " + processo.Interessado.Nome + ", informado na linha " + (linha["indice"]) + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>"); //log.Append("O interessado " + processo.Interessado.Nome + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>"); // log.Append("O interessado " + processo.Interessado.Nome + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>"); setProcInter(processo, interessado, linha, i); } else { //Novo Processo - 6.3 processo = new Processo(); } } //Aqui é onde eu salvo if (listaGravarProcInter.Count != 0) { foreach (ProcessoInteressado item in listaGravarProcInter) { aplProcessoInteressado.salvar(item); } } //Método que eu uso para verificação Preliminar private void VerificacaoPreliminar(IEnumerable<DataRow> dados) { int i = 4; bool importado = false; foreach (var linha in dados) { i++; //Verifica se nenhuma planilha com o numSEP informado já não foi importada if (!linha.ItemArray[17].ToString().Equals("")) { if (aplProcessoInteressado.listaProcInterPorCodSep(decimal.Parse(linha.ItemArray[17].ToString())).Count != 0) { importado = true; break; } } else { log.Append("A célula S referente a linha " + (linha["indice"]) + " deve ser preenchida. <br>"); arquivoInvalidado = true; } } } //Método onde eu valido a duplicidade do interessado. public void ValidaDuplicidadeInteressado() { if (listaInteressadoArq.Count != 0) { List<Interessado> listaInterAux = new List<Interessado>(); List<Processo> listaProc = new List<Processo>(); List<ProcessoInteressado> listaProcInter = new List<ProcessoInteressado>(); List<Interessado> listaTodosInteressados = aplInteressado.listaTodos(); String logAlteracaoInter = String.Empty; foreach (var inter in listaInteressadoArq) { if (listaTodosInteressados.Exists(i => i.CPF_CNPJ == inter.CPF_CNPJ || i.Nome.Contains(inter.Nome))) { listaInterAux = listaTodosInteressados.FindAll(i => i.CPF_CNPJ == inter.CPF_CNPJ || i.Nome.Contains(inter.Nome)); if (listaInterAux.Count > 1) { //Atualização de interessado duplicado e alterações necessárias para o caso logAlteracaoInter = "Importação - Alteração do Interessado, Nome: " + listaInterAux.First().Nome + ", CPF/CNPJ: " + listaInterAux.First().CPF_CNPJ + ", Endereço: " + listaInterAux.First().Endereco + ", nº: " + listaInterAux.First().Numero + ", Cep: " + listaInterAux.First().Cep + ", Bairro: " + (listaInterAux.First().Bairro != null ? listaInterAux.First().Bairro.Descricao : String.Empty) + ", Municipio: " + (listaInterAux.First().Municipio != null ? listaInterAux.First().Municipio.Nome : String.Empty) + ", Complemento: " + listaInterAux.First().Complemento + ".'\n'" + "Para '\n'"; Interessado interessado = new Interessado(); interessado = listaInterAux.First(); interessado.Bairro = inter.Bairro; interessado.Cep = inter.Cep; interessado.Complemento = inter.Complemento; interessado.CPF_CNPJ = inter.CPF_CNPJ; interessado.Endereco = inter.Endereco; interessado.Municipio = inter.Municipio; interessado.Nome = inter.Nome; interessado.Numero = inter.Numero; listaInterAux.Remove(listaInterAux.First()); aplInteressado.gravar(interessado); logAlteracaoInter += "Nome: " + interessado.Nome + ", CPF/CNPJ: " + interessado.CPF_CNPJ + ", Endereço: " + interessado.Endereco + ", nº: " + interessado.Numero + ", Cep: " + interessado.Cep + ", Bairro: " + (interessado.Bairro != null ? interessado.Bairro.Descricao : String.Empty) + ", Municipio: " + (interessado.Municipio != null ? interessado.Municipio.Nome : String.Empty) + ", Complemento: " + interessado.Complemento + "."; listaLogsAuditoria.Add(logAlteracaoInter); listaProc = aplProcesso.consultaPorInteressado(interessado); foreach (var item in listaProc) { item.Interessado = interessado; aplProcesso.gravar(item); listaLogsAuditoria.Add("Importação - Alteração do processo de número judicial " + item.NumProcessoJudicial + ". Alterado Interessado por motivo de duplicidade de CPF/CNPJ."); } listaProcInter = aplProcessoInteressado.listaProcInterPorInteressado(interessado);// aplProcessoInteressado.listaProcInterPorCpf(inter.CPF); foreach (var item in listaProcInter) { item.Interessado = interessado; aplProcessoInteressado.salvar(item); listaLogsAuditoria.Add("Importação - Alteração do processo/interessado código: " + item.Codigo + ", pertencente ao Processo: " + item.Processo.NumProcessoJudicial + ". Alterado Interessado por motivo de duplicidade de CPF/CNPJ."); } while (listaInterAux.Count != 0) { try { listaLogsAuditoria.Add("Importação - Exclusão do Interessado: " + listaInterAux.First().Nome + " - " + listaInterAux.First().CPF_CNPJ + ". Por motivo de duplicidade de CPF/CNPJ."); Interessado interessadoDel = listaInterAux.First(); listaInterAux.Remove(interessadoDel); aplInteressado.deletar(interessadoDel); } catch (Exception erro) { ExibirMessageBoxException(erro.Message); } } } else { //Atualização de interessado existente Interessado interessado = new Interessado(); interessado = listaInterAux.First(); if (!this.InteressadoIgual(interessado, inter)) { logAlteracaoInter = "Importação - Alteração do Interessado, Nome: " + listaInterAux.First().Nome + ", CPF/CNPJ: " + listaInterAux.First().CPF_CNPJ + ", Endereço: " + listaInterAux.First().Endereco + ", nº: " + listaInterAux.First().Numero + ", Cep: " + listaInterAux.First().Cep + ", Bairro: " + (listaInterAux.First().Bairro != null ? listaInterAux.First().Bairro.Descricao : String.Empty) + ", Municipio: " + (listaInterAux.First().Municipio != null ? listaInterAux.First().Municipio.Nome : String.Empty) + ", Complemento: " + listaInterAux.First().Complemento + ".'\n'" + "Para '\n'"; aplInteressado.gravar(interessado); logAlteracaoInter += "Nome: " + interessado.Nome + ", CPF/CNPJ: " + interessado.CPF_CNPJ + ", Endereço: " + interessado.Endereco + ", nº: " + interessado.Numero + ", Cep: " + interessado.Cep + ", Bairro: " + (interessado.Bairro != null ? interessado.Bairro.Descricao : String.Empty) + ", Municipio: " + (interessado.Municipio != null ? interessado.Municipio.Nome : String.Empty) + ", Complemento: " + interessado.Complemento + "."; listaLogsAuditoria.Add(logAlteracaoInter); } } } else { //Novo interessado aplInteressado.gravar(inter); logAlteracaoInter = "Importação - Cadastro do Interessado, Nome: " + inter.Nome + ", CPF/CNPJ: " + inter.CPF_CNPJ + ", Endereço: " + inter.Endereco + ", nº: " + inter.Numero + ", Cep: " + inter.Cep + ", Bairro: " + (inter.Bairro != null ? inter.Bairro.Descricao : String.Empty) + ", Municipio: " + (inter.Municipio != null ? inter.Municipio.Nome : String.Empty) + ", Complemento: " + inter.Complemento + "."; listaLogsAuditoria.Add(logAlteracaoInter); } }//fim Foreach } } Me ajudem por gentileza.
  4. rtavix

    [Resolvido] Consultar Login

    Resolvido.
  5. rtavix

    [Resolvido] Referencia de objeto

    Resolvido.
  6. rtavix

    [Resolvido] Pegar o indice de uma linha

    Pessoal, resolvi o problema da seguinte forma, um pouco gambiarra, mas funcionou, Dentro do meu método importar, declarei a seguinte função: Dados = DadosExcel(Excel); Dados.Columns.Add("indice", typeof(int)); // Gambiarra, porém funciona, pegando os valores(indice da linha) int i = 1; foreach (DataRow linha in Dados.Rows) { linha["indice"] = i; i++; } e dentro do método da Threading eu passei o índice no log abaixo: private System.Threading.Tasks.Task ProcessamentoTabela(IEnumerable<DataRow> dadosparam, int i, Usuario usuarioLogado) { i = 4; Action<object> processamento = (dados) => { NHibernate.Context.ThreadStaticSessionContext.Bind(NhibernateHelper.HelpThreading().OpenSession()); foreach (var linha in (IEnumerable<DataRow>)dados) { i++; log.Append("O interessado " + processo.Interessado.Nome + ", informado na linha " + (linha["indice"]) + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>"); } } } Estou compartilhando com vocês a solução, pois vai que alguém um dia precise, deixo aqui a minha contribuição, obrigado aos demais colegas do fórum que procuraram me orientar e ajudar, muito obrigado mesmo. Problema solucionado.
  7. rtavix

    [Resolvido] Pegar o indice de uma linha

    Tentei fazer da seguinte forma: List<string> indicelinha = new List<string>(); foreach (var item in indicelinha.Select((value, index) => new { Value = value, Index = index })) { //Obtém o valor através de item.Value; string currentValue = item.Value; //Obtém o índice por meio de item.Index; int currentIndex = item.Index; } foreach (var linha in (IEnumerable<DataRow>)dados) { //i++; List<Processo> listaProcessoExistente = new List<Processo>(); Processo processo = null; Interessado interessado = new Interessado(); //busca o processo pelo nº judicial anterior ou atual if (!linha.ItemArray[1].ToString().Equals("")) processo = aplProcesso.consultar---ProcessoER(linha.ItemArray[1].ToString()); if (processo == null) { if (!linha.ItemArray[2].ToString().Equals("")) processo = aplProcesso.consultar---ProcessoER(linha.ItemArray[2].ToString()); } //busca o interessado por cpf/cnpj if (linha.ItemArray[7].ToString().Length == 14) interessado = aplInteressado.ConsultarPorCPF(AuxiliarCPF_CNPJ.DesformataCPF(linha.ItemArray[7].ToString())); if (linha.ItemArray[7].ToString().Length == 18) interessado = aplInteressado.ConsultarPorCPF(AuxiliarCPF_CNPJ.DesformataCNPJ(linha.ItemArray[7].ToString())); if (processo != null) { //se o processo não for nulo busco todos procinter relacionados a ele List<ProcessoInteressado> listaprocinter = aplProcessoInteressado.consultarPorIdProcesso(processo.Codigo); if (listaprocinter.Exists(o => o.Interessado == interessado)) log.Append("O interessado " + processo.Interessado.Nome + ", informado na linha " + (indicelinha) + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>"); //log.Append("O interessado " + processo.Interessado.Nome + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>"); // log.Append("O interessado " + processo.Interessado.Nome + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>"); setProcInter(processo, interessado, linha, i); } else { //Novo Processo - 6.3 processo = new Processo(); processo.Interessado = interessado; } Porém me retorna o seguinte: Log de Importação: O interessado SIMONE MARTINS TEIXEIRA, informado na linha System.Collections.Generic.List`1[System.String] foi adicionado novamente ao processo 0000112-75.2016.8.08.0012 O interessado REGINA DE CASTRO BORGES ABREU, informado na linha System.Collections.Generic.List`1[System.String] foi adicionado novamente ao processo 0000051-63.2017.8.08.0051
  8. rtavix

    [Resolvido] Pegar o indice de uma linha

    Beleza, vou ver aqui.
  9. rtavix

    [Resolvido] Pegar o indice de uma linha

    Então, quintelab, eu compilei aqui e todos os interessados da minha planilha passa na validação de duplicidade, porém quando entra no método da threading para mostrar o log para o usuário, ele não informa o indice correto, tipo, ele passa nessa validação de duplicidade e em seguida e ele entra dentro da threading, porém os logs estão vindo errados, aparece o seguinte: Log de Importação: O interessado SIMONE MARTINS TEIXEIRA, informado na linha 13 foi adicionado novamente ao processo 0000112-75.2016.8.08.0012 O interessado REGINA DE CASTRO BORGES ABREU, informado na linha 6 foi adicionado novamente ao processo 0000051-63.2017.8.08.0051 O correto é aparecer o seguinte log: Log de Importação: O interessado informado na linha 13 foi adicionado novamente ao processo 0000112-75.2016.8.08.0012 O interessado informado na linha 54 foi adicionado novamente ao processo 0000349-28.2017.8.08.0060 O interessado informado na linha 161 foi adicionado novamente ao processo 0000525-07.2015.8.08.0018 O interessado informado na linha 298 foi adicionado novamente ao processo 0001144-35.2014.8.08.0029 O interessado informado na linha 386 foi adicionado novamente ao processo 0000051-63.2017.8.08.0051 O interessado informado na linha 421 foi adicionado novamente ao processo 0001243-80.2016.8.08.0046 Eu sei que a linha 13 pertence a Simone, mas a REGINA DE CASTRO BORGES ABREU pertence a linha 386. O interessado da linha 6 se chama Frederico Vilella, isso que está pegando. :/
  10. rtavix

    [Resolvido] Pegar o indice de uma linha

    quintelab, bom dia! Eu fiz da seguinte forma: private System.Threading.Tasks.Task ProcessamentoTabela(IEnumerable<DataRow> dadosparam, int i, Usuario usuarioLogado) { i = 4; Action<object> processamento = (dados) => { /*if (NHibernate.Context.ThreadStaticSessionContext.HasBind(NhibernateHelper.SessionFactory.))*/ NHibernate.Context.ThreadStaticSessionContext.Bind(NhibernateHelper.HelpThreading().OpenSession()); foreach (var linha in (IEnumerable<DataRow>)dados) { i++; if (processo != null) { //se o processo não for nulo busco todos procinter relacionados a ele List<ProcessoInteressado> listaprocinter = aplProcessoInteressado.consultarPorIdProcesso(processo.Codigo); if (listaprocinter.Exists(o => o.Interessado == interessado)) log.Append("O interessado " + processo.Interessado.Nome + ", informado na linha " + (i + 1) + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>"); //log.Append("O interessado " + processo.Interessado.Nome + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>"); // log.Append("O interessado " + processo.Interessado.Nome + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>"); setProcInter(processo, interessado, linha, i); } else { //Novo Processo - 6.3 processo = new Processo(); processo.Interessado = interessado; } } } } Porém me tras o indice do interessado errado. Isso que está f***.. Por exemplo, Joana na minha planilha é linha 89, porém quando mostro o indice me informa no log que Joana é o indice 6 da minha planilha, isso que está pegando. Postei um tópico de como popular o meu datatable pra pegar o indice direto nesse método, porém não obtive êxito até o momento. Você sabe como eu poderia fazer para popular meu DataTable no meu método de importar e pegar o indice já de inicio e passar aqui dentro desse outro método o indice direto?
  11. Pessoal, eu consegui reslver, retirando o foreach de dentro da threading. Podem colocar como resolvido esse tópico.
  12. rtavix

    [Resolvido] Pegar o indice de uma linha

    Quintelab, brother anteriormente eu usava um for para pegar o indice da linha, no caso seria esse for e funcionava: for (int i = 5; i < (numLinhas - 1); i++) { } Devidas as mudanças que foi necessário fazer, tive que utilizar um foreach, pois como estou trabalhando com dataRow, linha, por isso houve essa mudança, eu só estou precisando fazer com que dentro do meu foreach pegue da linha 6 a diante pois de 1 a 5 é cabeçalho, hoje em dia esse é meu foreach: foreach (var linha in (IEnumerable<DataRow>)dados) { List<Processo> listaProcessoExistente = new List<Processo>(); Processo processo = null; Interessado interessado = new Interessado(); //busca o processo pelo nº judicial anterior ou atual if (!linha.ItemArray[1].ToString().Equals("")) processo = aplProcesso.consultar---ProcessoER(linha.ItemArray[1].ToString()); if (processo == null) { if (!linha.ItemArray[2].ToString().Equals("")) processo = aplProcesso.consultar---ProcessoER(linha.ItemArray[2].ToString()); } //busca o interessado por cpf/cnpj if (linha.ItemArray[7].ToString().Length == 14) interessado = aplInteressado.ConsultarPorCPF(AuxiliarCPF_CNPJ.DesformataCPF(linha.ItemArray[7].ToString())); if (linha.ItemArray[7].ToString().Length == 18) interessado = aplInteressado.ConsultarPorCPF(AuxiliarCPF_CNPJ.DesformataCNPJ(linha.ItemArray[7].ToString())); if (processo != null) { //se o processo não for nulo busco todos procinter relacionados a ele List<ProcessoInteressado> listaprocinter = aplProcessoInteressado.consultarPorIdProcesso(processo.Codigo); if (listaprocinter.Exists(o => o.Interessado == interessado)) //String.Concat(row.ToString()); log.Append("O interessado " + processo.Interessado.Nome + ", informado na linha " + ("É aqui que estou tentando pegar o indice da linha 6 a diante") + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>"); //log.Append("O interessado " + processo.Interessado.Nome + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>"); // log.Append("O interessado " + processo.Interessado.Nome + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>"); setProcInter(processo, interessado, ds, row); } } você saberia uma solução para isso, porque estou precisando somente disso para finalizar :/ me ajuda por favor amigo.
  13. Eu criei um outro tópico sobre o indice que estou tentando pegar e passando ele dentro de um método, você poderia por gentileza me ajudar nesse outro tópico brother? Pois estou precisando pegar o indice da linha 6 a diante, pois de 1 a 5 é cabeçalho. :/
  14. rtavix

    [Resolvido] Pegar o indice de uma linha

    Quintelab consegui resolver essa parte do código ai de cima, porém, estou com dificuldade de pegar o indice da planilha e mostrar para o usuário nessa parte: private System.Threading.Tasks.Task ProcessamentoTabela(IEnumerable<DataRow> dadosparam, DataSet ds, Usuario usuarioLogado, Int32 row) { Action<object> processamento = (dados) => { if (processo != null) { //se o processo não for nulo busco todos procinter relacionados a ele List<ProcessoInteressado> listaprocinter = aplProcessoInteressado.consultarPorIdProcesso(processo.Codigo); if (listaprocinter.Exists(o => o.Interessado == interessado)) //String.Concat(row.ToString()); log.Append("O interessado " + processo.Interessado.Nome + ", informado na linha " + String.Concat(row.ToString()) + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>"); //log.Append("O interessado " + processo.Interessado.Nome + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>"); // log.Append("O interessado " + processo.Interessado.Nome + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>"); setProcInter(processo, interessado, ds, row); } else { //Novo Processo - 6.3 processo = new Processo(); processo.Interessado = interessado; } } } tentei criar um contador, porém está pegando o indice errado, tipo, estou precisando pegar o indice da linha 6 a diante. Sacou?? Poderia por gentileza me dá uma moral ae brother?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.