Ir para conteúdo
rtavix

[Resolvido] Log de Importação para Usuário (Mensagem)

Recommended Posts

Pessoal não estou conseguindo fazer com que o log é mostrado para o usuário, o log seria esse:

 

if (listaprocinter.Exists(o => o.Interessado == interessado))
                            //loglbl.Text = loglbl.Text + "O interessado informado na linha " + indiceLinha.ToString() + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>";
                            log.Append("O interessado informado na linha " + linha + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>");

E também não esta salvando os dados do usuário que está importando o arquivo, que seria nessa linha:

 

aplLog.LogarAtividade(aplUsuario.buscaPorLogin(ObterUsuarioAutenticado().Login), "Importação do processo de número judicial: " + processo.NumProcessoJudicial
                                                + ". Interessado: " + processo.Interessado.Nome + " - " + processo.Interessado.CPF_CNPJ + ". Tribunal "
                                                + processo.Tribunal.NomeTribunal + ".", DateTime.Now);

 

Meu código que obtêm o Usuário autenticado:

#region Assembly Sefaz.Portal.Integracao.dll, v4.0.30319
// D:\Repositório SVN\SDP\SDPJ\branches\SDPJ-V3.1.0\SDPJ-102\packages\Sefaz.Portal.Integracao.dll
#endregion

using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
using System.Xml.Serialization;

namespace Sefaz.Portal.Integracao.WSAutorizacao
{
    [Serializable]
    [DebuggerStepThrough]
    [GeneratedCode("System.Xml", "4.0.30319.34234")]
    [XmlType(Namespace = "http://serviceintranet.sefaz.es.gov.br/")]
    [DesignerCategory("code")]
    public class Usuario
    {
        public Usuario();

        [XmlAttribute]
        public string CPF { get; set; }
        [XmlAttribute]
        public string Email { get; set; }
        [XmlAttribute]
        public string Login { get; set; }
        [XmlAttribute]
        public string Nome { get; set; }
        [XmlAttribute]
        public string NumFuncional { get; set; }
        public Sistema[] Sistemas { get; set; }
    }
}

Código completo:

 private System.Threading.Tasks.Task ProcessamentoTabela(IEnumerable<DataRow> dadosparam, int indiceLinha)
        {
            Action<object> processamento = (dados) =>
            {
                /*if (NHibernate.Context.ThreadStaticSessionContext.HasBind(NhibernateHelper.SessionFactory.))*/

                NHibernate.Context.ThreadStaticSessionContext.Bind(NhibernateHelper.HelpThreading().OpenSession());

                /*try
                {
                    loglbl.Text += DateTime.Now.ToString("dd/MM/yyyy ss:fff ") + " ## " + NhibernateHelper.SessaoCorrente.IsConnected;
                }
                catch (Exception ex)
                {
                    loglbl.Text += DateTime.Now.ToString("dd/MM/yyyy ss:fff ") + " ## " + ex.Message;
                }*/
                /*var lista = ((IEnumerable<DataRow>)dados).FirstOrDefault();

                var processo = aplProcesso.consultar---ProcessoER(lista.ItemArray[1].ToString());*/

                foreach (var linha in (IEnumerable<DataRow>)dados)
                {
                    int i = 0;
                    i = i + 1;
                    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))
                            //loglbl.Text = loglbl.Text + "O interessado informado na linha " + indiceLinha.ToString() + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>";
                            log.Append("O interessado informado na linha " + linha + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>");

                        setProcInter(processo, interessado, linha);
                    }
                    else
                    {
                        //Novo Processo - 6.3
                        processo = new Processo();
                        processo.Interessado = interessado;
                        processo.NumProcessoJudicial = linha.ItemArray[2].ToString().Trim();
                        processo.RenunciaCredito = "N";
                        processo.Situacao = new AplSituacao().ConsultarPorId(1);
                        processo.HonorarioDativo = "S";
                        processo.Reclamado = new AplReclamado().buscaItem(2);
                        processo.TipoDocumento = new AplTipoDocumento().buscaItem(4);
                        processo.TipoProcesso = "O";
                        if (linha.ItemArray[5].ToString().Contains("juizado"))
                            processo.Tribunal = new AplTribunal().buscaItem(71);
                        else
                            processo.Tribunal = new AplTribunal().buscaItem(3);
                        processo.NaturezaDespeza = new AplNaturezadeDespesa().buscaItem(3);

                        VaraExecucao vara = new VaraExecucao();
                        if (!linha.ItemArray[3].ToString().Equals("") && !linha.ItemArray[5].ToString().Equals(""))
                        {
                            List<VaraExecucao> listaVaraComarca = aplVaraExecucao.Consultar---omeVaraNomeComarca(linha.ItemArray[5].ToString().Trim(), linha.ItemArray[3].ToString().Trim());
                            if (listaVaraComarca.Count != 0)
                            {
                                if (linha.ItemArray[4].ToString().Equals(""))
                                {
                                    vara = listaVaraComarca.Find(o => o.NumeroVara == null);
                                }
                                else
                                {
                                    vara = listaVaraComarca.Find(o => o.NumeroVara == int.Parse(linha.ItemArray[4].ToString().Trim()));
                                }
                            }
                        }
                        if (vara != null && vara.Codigo != 0)
                        {
                            processo.VaraExecucao = vara;
                        }

                        //obter lista sem registros duplicados. (Robson)
                        var ListaSemDuplicados = listaGravarProcesso.Distinct().ToList();
                        aplProcesso.gravar(processo);
                        aplLog.LogarAtividade(aplUsuario.buscaPorLogin(ObterUsuarioAutenticado().Login), "Importação do processo de número judicial: " + processo.NumProcessoJudicial
                                                + ". Interessado: " + processo.Interessado.Nome + " - " + processo.Interessado.CPF_CNPJ + ". Tribunal "
                                                + processo.Tribunal.NomeTribunal + ".", DateTime.Now);
                        //log.Append("O processo " + processo.NumProcessoJudicial + " informado na linha " + (i + 1) + " foi cadastrado com sucesso. <br>");

                        setProcInter(processo, interessado, linha);
                    }

                }//Fim For
                //ClientScript.RegisterStartupScript(typeof(string), "Carregando...", "<script>$('#progressbar').progressbar({value: 70});</script>");
                ClientScript.RegisterStartupScript(Page.GetType(), "Carregando...", "<script>document.getElementById('progresso').style.width = '60%';</script>");

                if (listaGravarProcInter.Count != 0)
                {
                    foreach (ProcessoInteressado item in listaGravarProcInter)
                    {
                        //obter lista sem registros duplicados. (Robson)
                        var ListaSemDuplicados = listaGravarProcInter.Distinct().ToList();
                        aplProcessoInteressado.salvar(item);
                    }
                }


                if (listaLogsAuditoria.Count != 0)
                {
                    foreach (var item in listaLogsAuditoria)
                    {
                        aplLog.LogarAtividade(aplUsuario.buscaPorLogin(ObterUsuarioAutenticado().Login), item, DateTime.Now);
                    }
                }
                logimportacao.Visible = true;
                loglbl.Text = log.ToString();
                //ClientScript.RegisterStartupScript(Page.GetType(), "Carregando...", "<script>document.getElementById('progresso').style.width = '100%';</script>");
                ClientScript.RegisterStartupScript(typeof(string), "Alerta", "<script>alert('Arquivo importado com sucesso. Verifique o log na tela. ')</script>");
            };


            //else
            //{
            //    logimportacao.Visible = true;
            //    loglbl.Text = log.ToString();
            //    ClientScript.RegisterStartupScript(typeof(string), "Erro", "<script>alert('Arquivo não importado. Verifique o log de erros na tela. ')</script>");



            ISession sessao = ThreadStaticSessionContext.Unbind(NhibernateHelper.HelpThreading());
            if (sessao != null)
            {
                if (sessao.Transaction != null && sessao.Transaction.IsActive)
                {
                    sessao.Transaction.Rollback();
                }
                else
                {
                    sessao.Flush();
                }
                sessao.Close();

            }
            else
            {
                logimportacao.Visible = true;
                loglbl.Text = log.ToString();
                ClientScript.RegisterStartupScript(typeof(string), "Erro", "<script>alert('Arquivo não importado. Verifique o log de erros na tela. ')</script>");
            }


            //Tarefas baseadas de forma assíncrona
            System.Threading.Tasks.Task tarefa_executar = new System.Threading.Tasks.Task(processamento, dadosparam);

            return tarefa_executar;
            logimportacao.Visible = true;
            loglbl.Text = log.ToString();
            //ClientScript.RegisterStartupScript(Page.GetType(), "Carregando...", "<script>document.getElementById('progresso').style.width = '100%';</script>");
            ClientScript.RegisterStartupScript(typeof(string), "Alerta", "<script>alert('Arquivo importado com sucesso. Verifique o log na tela. ')</script>");
        }

Me ajudem por gentileza :/ 

Compartilhar este post


Link para o post
Compartilhar em outros sites

É dificil ajudar somente com essas informações.

Esta dando algum erro ? Já debugou pra ver se esta passando nas linhas de código que exibe o log e que salva no banco ? De repente tem algum if que esta evitando que passe por essas lihas.

Compartilhar este post


Link para o post
Compartilhar em outros sites
4 horas atrás, quintelab disse:

É dificil ajudar somente com essas informações.

Esta dando algum erro ? Já debugou pra ver se esta passando nas linhas de código que exibe o log e que salva no banco ? De repente tem algum if que esta evitando que passe por essas lihas.

Amigo, devido a lentidão que o sistema está apresentando no momento que eu vou tentar importar esse arquivo, fui obrigado a aprender na marra de trabalhar com as threading pois sabia que resolveria o meu problema, realmente resolveu, o problema que eu tive que adaptar os códigos existentes nesse novo modelo que coloquei logo acima, só que agora não faz o que fazia antes, que era salvar os logs do usuário e enviar os logs das mensagens.

 

Esse era o meu código anterior que causava a lentidão:

 

protected void importar_Click(object sender, EventArgs e)
        {

            Stopwatch relogio = new Stopwatch();
            relogio.Start();
            //Verifica se um arquivo foi selecionado
            if (selecionarArquivo.HasFile)
            {
                //Valida a extensão do arquivo:
                if (Path.GetExtension(selecionarArquivo.FileName) != ".xlsx" && Path.GetExtension(selecionarArquivo.FileName) != ".xls")
                    ClientScript.RegisterStartupScript(typeof(string), "Erro", "<script>alert('Somente arquivos em excel')</script>");

                else
                {
                    if (selecionarArquivo.FileContent != null)
                    {
                        string Excel = AppDomain.CurrentDomain.BaseDirectory + selecionarArquivo.FileName;
                        selecionarArquivo.SaveAs(Excel);

                        DataTable Dados = DadosExcel(Excel);
                        DataSet ds = new DataSet();

                        ds.Tables.Add(Dados);

                        if (ds.Tables.Count > 0)
                        {
                            bool layoutValido = VerificaLayout(ds);
                            if (!layoutValido)
                                ClientScript.RegisterStartupScript(typeof(string), "Erro", "<script>alert('Layout do arquivo fora do padrão definido para importação.')</script>");
                            else
                            {
                                //Inicio da validação dos dados inseridos na planilha
                                int numLinhas = ds.Tables[0].Rows.Count;
                                //Validação básica necessária para importação. PS: NumLinhas-1 porque o arquivo tem a última linha com total, que é inútil à importação.
                                VerificacaoPreliminar((numLinhas - 1), ds);



                                //Inicio da rotina de repetição para leitura de todas as linhas, iniciando na célula B6
                                if (!arquivoInvalidado)
                                {

                                    //ClientScript.RegisterStartupScript(Page.GetType(), "Carregando...", "<script>document.getElementById('progresso').style.width = '30%';</script>");
                                    //Verifica se existe mais de 1 interessado com mesmo CPF cadastrado, salva os interessados inexistentes e altera os cadastros q tem interessados duplicados.
                                    this.ValidaDuplicidadeInteressado();

                                    for (int i = 5; i < (numLinhas - 1); i++)
                                    {
                                        List<Processo> listaProcessoExistente = new List<Processo>();
                                        Processo processo = null;
                                        Interessado interessado = new Interessado();

                                        //busca o processo pelo nº judicial anterior ou atual
                                        if (!ds.Tables[0].Rows[i].ItemArray[1].ToString().Equals(""))
                                            processo = aplProcesso.consultar---ProcessoER(ds.Tables[0].Rows[i].ItemArray[1].ToString());
                                        if (processo == null)
                                        {
                                            if (!ds.Tables[0].Rows[i].ItemArray[2].ToString().Equals(""))
                                                processo = aplProcesso.consultar---ProcessoER(ds.Tables[0].Rows[i].ItemArray[2].ToString());
                                        }
                                        //busca o interessado por cpf/cnpj
                                        if (ds.Tables[0].Rows[i].ItemArray[7].ToString().Length == 14)
                                            interessado = aplInteressado.ConsultarPorCPF(AuxiliarCPF_CNPJ.DesformataCPF(ds.Tables[0].Rows[i].ItemArray[7].ToString()));
                                        if (ds.Tables[0].Rows[i].ItemArray[7].ToString().Length == 18)
                                            interessado = aplInteressado.ConsultarPorCPF(AuxiliarCPF_CNPJ.DesformataCNPJ(ds.Tables[0].Rows[i].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 informado na linha " + (i + 1) + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>");
                                            //foreach(var item in listaprocinter)
                                            //{
                                            //    if (item.Interessado == interessado)
                                            //        log.Append("O interessado informado na linha " + (i + 1) + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>");                                                 
                                            //}
                                            setProcInter(processo, interessado, ds, i);
                                        }
                                        else
                                        {
                                            //Novo Processo - 6.3
                                            processo = new Processo();

                                            processo.Interessado = interessado;

                                            processo.NumProcessoJudicial = ds.Tables[0].Rows[i].ItemArray[2].ToString().Trim();
                                            processo.RenunciaCredito = "N";
                                            processo.Situacao = new AplSituacao().ConsultarPorId(1);
                                            processo.HonorarioDativo = "S";
                                            processo.Reclamado = new AplReclamado().buscaItem(2);
                                            processo.TipoDocumento = new AplTipoDocumento().buscaItem(4);
                                            processo.TipoProcesso = "O";
                                            if (ds.Tables[0].Rows[i].ItemArray[5].ToString().Contains("juizado"))
                                                processo.Tribunal = new AplTribunal().buscaItem(71);
                                            else
                                                processo.Tribunal = new AplTribunal().buscaItem(3);
                                            processo.NaturezaDespeza = new AplNaturezadeDespesa().buscaItem(3);

                                            VaraExecucao vara = new VaraExecucao();
                                            if (!ds.Tables[0].Rows[i].ItemArray[3].ToString().Equals("") && !ds.Tables[0].Rows[i].ItemArray[5].ToString().Equals(""))
                                            {
                                                List<VaraExecucao> listaVaraComarca = aplVaraExecucao.Consultar---omeVaraNomeComarca(ds.Tables[0].Rows[i].ItemArray[5].ToString().Trim(), ds.Tables[0].Rows[i].ItemArray[3].ToString().Trim());
                                                if (listaVaraComarca.Count != 0)
                                                {

                                                    if (ds.Tables[0].Rows[i].ItemArray[4].ToString().Equals(""))
                                                    {
                                                        vara = listaVaraComarca.Find(o => o.NumeroVara == null);
                                                    }
                                                    else
                                                    {
                                                        vara = listaVaraComarca.Find(o => o.NumeroVara == int.Parse(ds.Tables[0].Rows[i].ItemArray[4].ToString().Trim()));
                                                    }
                                                }
                                            }
                                            if (vara != null && vara.Codigo != 0)
                                            {
                                                processo.VaraExecucao = vara;
                                            }

                                            //obter lista sem registros duplicados. (Robson)
                                            var ListaSemDuplicados = listaGravarProcesso.Distinct().ToList();
                                            aplProcesso.gravar(processo);
                                            aplLog.LogarAtividade(aplUsuario.buscaPorLogin(ObterUsuarioAutenticado().Login), "Importação do processo de número judicial: " + processo.NumProcessoJudicial
                                                                    + ". Interessado: " + processo.Interessado.Nome + " - " + processo.Interessado.CPF_CNPJ + ". Tribunal "
                                                                    + processo.Tribunal.NomeTribunal + ".", DateTime.Now);
                                            //log.Append("O processo " + processo.NumProcessoJudicial + " informado na linha " + (i + 1) + " foi cadastrado com sucesso. <br>");

                                            setProcInter(processo, interessado, ds, i);
                                        }
                                    }//Fim For
                                    //ClientScript.RegisterStartupScript(typeof(string), "Carregando...", "<script>$('#progressbar').progressbar({value: 70});</script>");
                                    ClientScript.RegisterStartupScript(Page.GetType(), "Carregando...", "<script>document.getElementById('progresso').style.width = '60%';</script>");

                                    if (listaGravarProcInter.Count != 0)
                                    {
                                        foreach (ProcessoInteressado item in listaGravarProcInter)
                                        {
                                            //obter lista sem registros duplicados. (Robson)
                                            var ListaSemDuplicados = listaGravarProcInter.Distinct().ToList();
                                            aplProcessoInteressado.salvar(item);
                                        }
                                    }
                                    if (listaLogsAuditoria.Count != 0)
                                    {
                                        foreach (var item in listaLogsAuditoria)
                                        {
                                            aplLog.LogarAtividade(aplUsuario.buscaPorLogin(ObterUsuarioAutenticado().Login), item, DateTime.Now);
                                        }
                                    }
                                    logimportacao.Visible = true;
                                    loglbl.Text = log.ToString();
                                    //ClientScript.RegisterStartupScript(Page.GetType(), "Carregando...", "<script>document.getElementById('progresso').style.width = '100%';</script>");
                                    ClientScript.RegisterStartupScript(typeof(string), "Alerta", "<script>alert('Arquivo importado com sucesso. Verifique o log na tela. ')</script>");
                                }
                                else
                                {
                                    logimportacao.Visible = true;
                                    loglbl.Text = log.ToString();
                                    ClientScript.RegisterStartupScript(typeof(string), "Erro", "<script>alert('Arquivo não importado. Verifique o log de erros na tela. ')</script>");
                                }

                            }
                        }
                    }
                }
            }
            relogio.Stop();
Debug.WriteLine("#############"+relogio.Elapsed.ToString());
        }

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
4 horas atrás, quintelab disse:

É dificil ajudar somente com essas informações.

Esta dando algum erro ? Já debugou pra ver se esta passando nas linhas de código que exibe o log e que salva no banco ? De repente tem algum if que esta evitando que passe por essas lihas.

Quintelab esse é o meu código usandos as threadings e adaptação do código:

 

/*Stopwatch relogio = new Stopwatch();
            relogio.Start();*/
            
            DataTable Dados = new DataTable();
            //Verifica se um arquivo foi selecionado
            if (selecionarArquivo.HasFile)
            {
                //Valida a extensão do arquivo:
                if (Path.GetExtension(selecionarArquivo.FileName) != ".xlsx" && Path.GetExtension(selecionarArquivo.FileName) != ".xls")
                    ClientScript.RegisterStartupScript(typeof(string), "Erro", "<script>alert('Somente arquivos em excel')</script>");
                else
                {

                    if (selecionarArquivo.FileContent != null)
                    {
                        string Excel = AppDomain.CurrentDomain.BaseDirectory + selecionarArquivo.FileName;
                        selecionarArquivo.SaveAs(Excel);
                        Dados = DadosExcel(Excel);

                        var registrosValidos = ((DataTable)Dados).Rows.OfType<DataRow>().Skip(5);
                        //Elimina a última linha
                        registrosValidos = registrosValidos.Take(registrosValidos.Count() - 1);

                        //ler de 100 em 100 regisros
                        int quantidade_por_pagina = 100;
                        int total_de_paginas;
                        //Conta os registros válidos
                        int qtd_total_registros = registrosValidos.Count();
                        //Realiza o calculo matemáticos para total de paginas.
                        total_de_paginas = (int)Math.Ceiling((double)qtd_total_registros / quantidade_por_pagina);

                        VerificacaoPreliminar(registrosValidos);
                        bool layoutValido = VerificaLayout(Dados);
                        
                        if (!layoutValido)
                            ClientScript.RegisterStartupScript(typeof(string), "Erro", "<script>alert('Layout do arquivo fora do padrão definido para importação.')</script>");

                        else
                        {

                            //Criando as tarefas paralelas
                            List<System.Threading.Tasks.Task> TarefasParalelas = new List<System.Threading.Tasks.Task>();

                            if (!arquivoInvalidado)
                            {
                                //Verifica se existe mais de 1 interessado com mesmo CPF cadastrado, salva os interessados inexistentes e altera os cadastros que tem interessados duplicados.
                                this.ValidaDuplicidadeInteressado();

                                for (int j = 0; j < total_de_paginas; j++)
                                {

                                    var pagina = j;
                                    //leio as 100 linhas
                                    var linhasPorPagina = registrosValidos.Skip(pagina * quantidade_por_pagina).Take(quantidade_por_pagina);

                                    //Quebrando em 10 threads, vou quebrar a lista com a extenção criada abaixo
                                    var data_rows_divididos = linhasPorPagina.SplitList(10);

                                    foreach (var linhasDivididas in data_rows_divididos)
                                    {
                                        //ADICIONO A MINHA LISTA DE TAREFAS PARALELAS
                                        TarefasParalelas.Add(ProcessamentoTabela(linhasDivididas, j));
                                    }
                                }

                                //INICIOS AS TAREFAS PARALELAS
                                foreach (var tarefa in TarefasParalelas)
                                    tarefa.Start();

                                // AGORA ESPERO TODAS TAREFAS CONCLUIREM
                                System.Threading.Tasks.Task.WaitAll(TarefasParalelas.ToArray());

                                // ClientScript.RegisterStartupScript(Page.GetType(), "Carregando...", "<script>document.getElementById('progresso').style.width = '60%';</script>");

                                if (listaGravarProcInter.Count != 0)
                                {
                                    foreach (ProcessoInteressado item in listaGravarProcInter)
                                    {
                                        aplProcessoInteressado.salvar(item);
                                    }
                                }

                                if (listaLogsAuditoria.Count != 0)
                                {
                                    foreach (var item in listaLogsAuditoria)
                                    {
                                        aplLog.LogarAtividade(aplUsuario.buscaPorLogin(ObterUsuarioAutenticado().Login), item, DateTime.Now);
                                    }
                                }
                                  
                            }

                            else
                            {
                                logimportacao.Visible = true;
                                
                                ClientScript.RegisterStartupScript(typeof(string), "Erro", "<script>alert('Arquivo não importado. Verifique o log de erros na tela. ')</script>");
                            }
                        }

                        
                        //}
                    }

                }
            }
            
            loglbl.Text = log.ToString();


            //Tempo de importação.
            /*relogio.Stop();
            Debug.WriteLine("#############" + relogio.Elapsed.ToString());*/
        }

        private System.Threading.Tasks.Task ProcessamentoTabela(IEnumerable<DataRow> dadosparam, int indiceLinha)
        {
            Action<object> processamento = (dados) =>
            {
                /*if (NHibernate.Context.ThreadStaticSessionContext.HasBind(NhibernateHelper.SessionFactory.))*/

                NHibernate.Context.ThreadStaticSessionContext.Bind(NhibernateHelper.HelpThreading().OpenSession());

                /*try
                {
                    loglbl.Text += DateTime.Now.ToString("dd/MM/yyyy ss:fff ") + " ## " + NhibernateHelper.SessaoCorrente.IsConnected;
                }
                catch (Exception ex)
                {
                    loglbl.Text += DateTime.Now.ToString("dd/MM/yyyy ss:fff ") + " ## " + ex.Message;
                }*/
                /*var lista = ((IEnumerable<DataRow>)dados).FirstOrDefault();

                var processo = aplProcesso.consultar---ProcessoER(lista.ItemArray[1].ToString());*/

                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))
                            //loglbl.Text = loglbl.Text + "O interessado informado na linha " + indiceLinha.ToString() + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>";
                            log.Append("O interessado informado na linha " + indiceLinha.ToString() + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>");

                        setProcInter(processo, interessado, linha);
                    }
                    else
                    {
                        //Novo Processo - 6.3
                        processo = new Processo();
                        processo.Interessado = interessado;
                        processo.NumProcessoJudicial = linha.ItemArray[2].ToString().Trim();
                        processo.RenunciaCredito = "N";
                        processo.Situacao = new AplSituacao().ConsultarPorId(1);
                        processo.HonorarioDativo = "S";
                        processo.Reclamado = new AplReclamado().buscaItem(2);
                        processo.TipoDocumento = new AplTipoDocumento().buscaItem(4);
                        processo.TipoProcesso = "O";
                        if (linha.ItemArray[5].ToString().Contains("juizado"))
                            processo.Tribunal = new AplTribunal().buscaItem(71);
                        else
                            processo.Tribunal = new AplTribunal().buscaItem(3);
                        processo.NaturezaDespeza = new AplNaturezadeDespesa().buscaItem(3);

                        VaraExecucao vara = new VaraExecucao();
                        if (!linha.ItemArray[3].ToString().Equals("") && !linha.ItemArray[5].ToString().Equals(""))
                        {
                            List<VaraExecucao> listaVaraComarca = aplVaraExecucao.Consultar---omeVaraNomeComarca(linha.ItemArray[5].ToString().Trim(), linha.ItemArray[3].ToString().Trim());
                            if (listaVaraComarca.Count != 0)
                            {
                                if (linha.ItemArray[4].ToString().Equals(""))
                                {
                                    vara = listaVaraComarca.Find(o => o.NumeroVara == null);
                                }
                                else
                                {
                                    vara = listaVaraComarca.Find(o => o.NumeroVara == int.Parse(linha.ItemArray[4].ToString().Trim()));
                                }
                            }
                        }
                        if (vara != null && vara.Codigo != 0)
                        {
                            processo.VaraExecucao = vara;
                        }
                        aplProcesso.gravar(processo);
                        
                        aplLog.LogarAtividade(aplUsuario.buscaPorLogin(ObterUsuarioAutenticado().Login), "Importação do processo de número judicial: " + processo.NumProcessoJudicial
                        + ". Interessado: " + processo.Interessado.Nome + " - " + processo.Interessado.CPF_CNPJ + ". Tribunal "
                        + processo.Tribunal.NomeTribunal + ".", DateTime.Now);

                        log.Append("O processo " + processo.NumProcessoJudicial + " informado na linha " + indiceLinha.ToString() + " foi cadastrado com sucesso. <br>");
                        
                        //ClientScript.RegisterStartupScript(typeof(string), "Alerta", "<script>alert('Arquivo importado com sucesso. Verifique o log na tela. ')</script>");

                        setProcInter(processo, interessado, linha);
                    }

                    log.Append("Importado com sucesso! - " + indiceLinha.ToString());
                }

                ISession sessao = ThreadStaticSessionContext.Unbind(NhibernateHelper.HelpThreading());
                if (sessao != null)
                {
                    if (sessao.Transaction != null && sessao.Transaction.IsActive)
                    {
                        sessao.Transaction.Rollback();
                    }
                    else
                    {
                        sessao.Flush();
                    }
                    sessao.Close();
                }

            };
            //Tarefas baseadas de forma assíncrona
            System.Threading.Tasks.Task tarefa_executar = new System.Threading.Tasks.Task(processamento, dadosparam);

            return tarefa_executar;
        }

E ao compilar o mesmo passa nessas linhas. Antes eu utilizava um for ao invés de forache:

for (int i = 5; i < (numLinhas - 1); i++)
                                    {

mas não funciona com foreach :/

 

4 horas atrás, quintelab disse:

É dificil ajudar somente com essas informações.

Esta dando algum erro ? Já debugou pra ver se esta passando nas linhas de código que exibe o log e que salva no banco ? De repente tem algum if que esta evitando que passe por essas lihas.

E o log que é mostrado ao importar, apresenta a seguinte mensagem para o usuário:

 

Log de Importação:
 

O interessado informado na linha System.Data.DataRow foi adicionado novamente ao processo 0000168-05.2017.8.08.0035 
O interessado informado na linha System.Data.DataRow foi adicionado novamente ao processo 0002951-04.2016.8.08.0035 
O interessado informado na linha System.Data.DataRow foi adicionado novamente ao processo 0000141-41.2017.8.08.0061 

Compartilhar este post


Link para o post
Compartilhar em outros sites
10 horas atrás, quintelab disse:

É dificil ajudar somente com essas informações.

Esta dando algum erro ? Já debugou pra ver se esta passando nas linhas de código que exibe o log e que salva no banco ? De repente tem algum if que esta evitando que passe por essas lihas.

Quintelab, brother, eu dei uma ajeitada aqui no código e o mesmo está funcionando entre aspas, acontece que eu não consigo percorrer essa linha no meu código para mostrar o log para o usuário:

log.Append("O interessado informado na linha " + indiceLinha.ToString() + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>");

até aqui nessa linha onde coloco o brackpoint ele passa:

if (listaprocinter.Exists(o => o.Interessado == interessado))

Porém quando passa aí, ele caí direto nessa linha:

setProcInter(processo, interessado, linha);

Se puder me ajudar por gentileza, agradeço, só acho estranho porque quando eu utilizava o for no lugar do foreach, passava numa boa, agora por ter mudado toda estrutura não esta passando nessa linha que te disse amigo, tá foids :/

 

Alterei o código, acho que ficou melhor para entender.

 

Segue:

private System.Threading.Tasks.Task ProcessamentoTabela(IEnumerable<DataRow> dadosparam, int indiceLinha)
        {
            Action<object> processamento = (dados) =>
            {
                if (!arquivoInvalidado)
                {
                    this.ValidaDuplicidadeInteressado();
                    /*if (NHibernate.Context.ThreadStaticSessionContext.HasBind(NhibernateHelper.SessionFactory.))*/

                    NHibernate.Context.ThreadStaticSessionContext.Bind(NhibernateHelper.HelpThreading().OpenSession());

                    /*try
                    {
                        loglbl.Text += DateTime.Now.ToString("dd/MM/yyyy ss:fff ") + " ## " + NhibernateHelper.SessaoCorrente.IsConnected;
                    }
                    catch (Exception ex)
                    {
                        loglbl.Text += DateTime.Now.ToString("dd/MM/yyyy ss:fff ") + " ## " + ex.Message;
                    }*/
                    /*var lista = ((IEnumerable<DataRow>)dados).FirstOrDefault();

                    var processo = aplProcesso.consultar---ProcessoER(lista.ItemArray[1].ToString());*/

                    foreach (var linha in (IEnumerable<DataRow>)dados)
                    {
                        int i = 0;
                        i = i + 1;
                        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))
                            
                                //loglbl.Text = loglbl.Text + "O interessado informado na linha " + indiceLinha.ToString() + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>";
                                log.Append("O interessado informado na linha " + indiceLinha.ToString() + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>");

                            
                            setProcInter(processo, interessado, linha);
                        }

                        else
                        {
                            //Novo Processo - 6.3
                            processo = new Processo();
                            processo.Interessado = interessado;
                            processo.NumProcessoJudicial = linha.ItemArray[2].ToString().Trim();
                            processo.RenunciaCredito = "N";
                            processo.Situacao = new AplSituacao().ConsultarPorId(1);
                            processo.HonorarioDativo = "S";
                            processo.Reclamado = new AplReclamado().buscaItem(2);
                            processo.TipoDocumento = new AplTipoDocumento().buscaItem(4);
                            processo.TipoProcesso = "O";
                            if (linha.ItemArray[5].ToString().Contains("juizado"))
                                processo.Tribunal = new AplTribunal().buscaItem(71);
                            else
                                processo.Tribunal = new AplTribunal().buscaItem(3);
                            processo.NaturezaDespeza = new AplNaturezadeDespesa().buscaItem(3);

                            VaraExecucao vara = new VaraExecucao();
                            if (!linha.ItemArray[3].ToString().Equals("") && !linha.ItemArray[5].ToString().Equals(""))
                            {
                                List<VaraExecucao> listaVaraComarca = aplVaraExecucao.Consultar---omeVaraNomeComarca(linha.ItemArray[5].ToString().Trim(), linha.ItemArray[3].ToString().Trim());
                                if (listaVaraComarca.Count != 0)
                                {
                                    if (linha.ItemArray[4].ToString().Equals(""))
                                    {
                                        vara = listaVaraComarca.Find(o => o.NumeroVara == null);
                                    }
                                    else
                                    {
                                        vara = listaVaraComarca.Find(o => o.NumeroVara == int.Parse(linha.ItemArray[4].ToString().Trim()));
                                    }
                                }
                            }
                            if (vara != null && vara.Codigo != 0)
                            {
                                processo.VaraExecucao = vara;
                            }
                            aplProcesso.gravar(processo);
                            aplLog.LogarAtividade(aplUsuario.buscaPorLogin(ObterUsuarioAutenticado().Login), "Importação do processo de número judicial: " + processo.NumProcessoJudicial
                                                    + ". Interessado: " + processo.Interessado.Nome + " - " + processo.Interessado.CPF_CNPJ + ". Tribunal "
                                                    + processo.Tribunal.NomeTribunal + ".", DateTime.Now);
                            //log.Append("O processo " + processo.NumProcessoJudicial + " informado na linha " + (i + 1) + " foi cadastrado com sucesso. <br>");

                            setProcInter(processo, interessado, linha);
                        }


                    }//Fim Foreach
                    //ClientScript.RegisterStartupScript(typeof(string), "Carregando...", "<script>$('#progressbar').progressbar({value: 70});</script>");
                    ClientScript.RegisterStartupScript(Page.GetType(), "Carregando...", "<script>document.getElementById('progresso').style.width = '60%';</script>");

                    if (listaGravarProcInter.Count != 0)
                    {
                        foreach (ProcessoInteressado item in listaGravarProcInter)
                        {
                            aplProcessoInteressado.salvar(item);
                        }
                    }

                    if (listaLogsAuditoria.Count != 0)
                    {
                        foreach (var item in listaLogsAuditoria)
                        {
                            aplLog.LogarAtividade(aplUsuario.buscaPorLogin(ObterUsuarioAutenticado().Login), item, DateTime.Now);
                        }
                    }
                    logimportacao.Visible = true;
                    loglbl.Text = log.ToString();
                    //ClientScript.RegisterStartupScript(Page.GetType(), "Carregando...", "<script>document.getElementById('progresso').style.width = '100%';</script>");
                    ClientScript.RegisterStartupScript(typeof(string), "Alerta", "<script>alert('Arquivo importado com sucesso. Verifique o log na tela. ')</script>");

                }
                else
                {
                    logimportacao.Visible = true;
                    loglbl.Text = log.ToString();
                    ClientScript.RegisterStartupScript(typeof(string), "Erro", "<script>alert('Arquivo não importado. Verifique o log de erros na tela. ')</script>");
                }
            };
            
            ISession sessao = ThreadStaticSessionContext.Unbind(NhibernateHelper.HelpThreading());
            if (sessao != null)
            {
                if (sessao.Transaction != null && sessao.Transaction.IsActive)
                {
                    sessao.Transaction.Rollback();
                }
                else
                {
                    sessao.Flush();
                }
                sessao.Close();

            }
             //Tarefas baseadas de forma assíncrona
            System.Threading.Tasks.Task tarefa_executar = new System.Threading.Tasks.Task(processamento, dadosparam);

            return tarefa_executar;

           
        }

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nesse caso você tem que ver se sua lógica esta certa.

 

Só pode adicionar log se o interessado estiver na listaprocinter? Precisa desse if antes do log ?

 

if (listaprocinter.Exists(o => o.Interessado == interessado)) 
log.Append("O interessado informado na linha " + indiceLinha.ToString() + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>");

 

  • +1 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
44 minutos atrás, quintelab disse:

Nesse caso você tem que ver se sua lógica esta certa.

 

Só pode adicionar log se o interessado estiver na listaprocinter? Precisa desse if antes do log ?

 


if (listaprocinter.Exists(o => o.Interessado == interessado)) 
log.Append("O interessado informado na linha " + indiceLinha.ToString() + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>");

 

Se o processo não for nulo eu relaciono todos os procinter relacionado a ele, e verifico se o interessado existe.

Compartilhar este post


Link para o post
Compartilhar em outros sites
12 horas atrás, quintelab disse:

Parece que não esta passando pela linha do log por que o interessado não existe.

Quando você debuga o valor da variável interessado existe na sua lista ?

Amigão resolvi o problema em partes, era o if que acabei implementando no lugar errado. Mas estou precisando muita da sua ajuda nesse outro tópico que criei, tipo eu tenho na minha planilha cabeçalho que ocupa as 5 primeiras linhas. Então eu preciso pegar o índice da 6ª linha a diante e passar o log, não sei como resolver isso. Porque o que já existe hoje em dia não funciona, quando compilei mostrou a seguinte mensagem: A célula G por exemplo da linha 1 deve ser preenchida, o correto seria mostrar que a Célula G da linha 6 deve ser preenchida, pois nos meus logs existem campos obrigatórios que a planilha deverá ter. Te peço por gentileza, me ajude por favor, o link está abaixo.

 

https://forum.imasters.com.br/topic/565789-pegar-o-indice-de-uma-linha/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Jonathacsantos
      Boa tarde, sou novo na programação, comecei por conta própria e agora estou com um pequeno problema, meu programa depende de uma pasta criada pra executar um .exe que fica dentro de uma outra pasta, sendo que eu preciso que ele leia o .exe independente de onde ele fica instalado, vou mostrar uma parte do código para tentar explicar 
      private void AcessRemo_Click(object sender, EventArgs e) { foreach ( var process in Process.GetProcessesByName("TeamViewer")) { process.Kill(); } Process.Start("C:\\Teste\\suporteremoto.exe"); ele fecha um teamviewer em execução e executa uma versão especifica do teamviewer, sendo que nos meus testes funciona pq eu tenho essa pasta ai chamada teste, mas o programa instala em Program Files, sendo que se for 64, ele vai pra Program Files (x86), dai gostaria de fazer ele ler, tipo um [LocalPath] , mas não sei como , se alguem puder me ajudar ou me da uma luz eu agradeço muito.
    • Por lucasrodrigues
      Estou com esse problema ao tentar vincular uma tabela do MySql a um DataSet. Utilizo o MySqlConnector 8.0.13, MySql-For-VisualStudio 1.2.8.

    • Por jtc-carr
      Linguagem c
      Queria a partir de um ficheiro fazer varias somas do seu conteúdo por exemplo de caracteres especiais, vogais, letra "a" , números, De forma a que devolve-se por exemplo 5 linhas, 4 caracteres especiais, 7 vogais, 9 "a", 6 numeros, num total de 40 caracteres, para os numeros fiz um if, para a função mas não funciona como devia
      while( (texto[MAX]=fgetc(textos))!= EOF ) if(texto[MAX] == '\n') linha++; printf("Existem %d linhas no arquivo\n", linha); if (i == '0' || i == '1' || i == 2' || i == '3' || i == '4' || i == '5' || i == 6' || i == '7' || i == '8'|| i == '9' ) Ajuda seria bem vinda, que queria perceber bem isto
    • Por Maicon Santos
      Foi me passada a tarefa de fazer um sistema onde o usuário (funcionário 1) (Funcionário da empresa X) irá fazer um cadastro com suas informações, após esse cadastro essas informações serão avaliadas por outro funcionário (funcionário 2) da empresa X que fica responsável apenas por verificar as informações desse usuário e dar permissões a ele. Até então é um sistema simples de cadastro.
      Após o funcionário 1 fazer o cadastro o funcionário 2 avaliará essas informações para ver se esse usuário pode ter acesso a conta bancária da empresa. (Pera! Como assim?) Exatamente isso, o usuário vai se cadastrar e se ele for apto a acessar a conta bancária da empresa o sistema terá que fazer o login na conta bancária da empresa, ou seja o sistema deve apenas verificar os dados do funcionário 1, se ele for apto abrir a conta da empresa o sistema terá que passar os dados pelo internet banking do Santander.
       
      Um outro exemplo que talvez facilite entender:
      Os funcionários 1, 2 e 3 trabalham juntos gerenciando as finanças da empresa, então todos eles precisam acessar a conta bancaria da empresa, mas o gerente para não ter que passar o login e senha para eles quer que o sistema faça esse login, sem que os funcionários saibam esses devidos dados, então os funcionários farão um cadastro no sistema e após fazer o login no mesmo eles automaticamente fazem o login na conta do Santander da empresa
       
      Basicamente isso, minhas dúvidas até o momento:
      Isso é realmente possível? Fazer o login no internet banking, que tem a função de ser muito seguro, através de um outro sistema
      Eu tenho a disponibilidade para escolher entre fazer um sistema desktop (usando C#, que eu tenho mais domínio) ou fazer um sistema WEB (que eu não possuo tanto domínio assim das linguagens), para fazer esse tipo de trabalho, o que seria mais indicado?
      Quais dicas vocês podem me dar para essa tarefa? Eu trabalho na área de desenvolvimento a pouco tempo, por isso não tenho muito conhecimento de sistemas desse nível, qualquer direção será de grande ajuda.
      Grato!
    • Por Master_Cyber
      Bom noite pessoal... Estou fazendo um bot que se comunica com o QnaMaker, e dependendo da resposta, deverá ser aberto uma conversação guiada através do FormFlow com uso  do Json.
      Meu problema é exatamente neste ponto para conseguir abrir o formulário.
      Estou usando a SDK V3 e o QnAMakerDialog do garypretty.
      Resumidamente neste ponto devo fazer algo para iniciar o form.
      public override async Task DefaultMatchHandler(IDialogContext context, string originalQueryText, QnAMakerResult result) {     QnaAnswer a = result.Answers.First();     var messageActivity = ProcessResultAndCreateMessageActivity(context, ref result);          if (a.Answer == "form")     {         // ABRIR FORM AQUI     }          await context.PostAsync(messageActivity);     context.Wait(MessageReceived); }  
      Já tentei várias coisas como chamar context.Forward ou context.Call, mas não da certo,  talvez eu esteja chamando de forma errada.
      Sempre retorna a mensagem dizendo que existe um problema no código fonte.
      Vocês podem me ajudar?
      Obrigado!!
×

Informação importante

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