Beispiel #1
0
        public LogTransfer Listar(LogTransfer logDados)
        {
            DbDataReader dr  = null;
            LogTransfer  ret = null;
            LogComando   cmd = db.Comando();

            int pular = 0;
            int registrosPorPagina = 0;
            int totalRegistros     = 0;

            if (logDados.Paginacao.RegistrosPorPagina < 1)
            {
                registrosPorPagina = 30;
            }
            else if (logDados.Paginacao.RegistrosPorPagina > 200)
            {
                registrosPorPagina = 30;
            }
            else
            {
                registrosPorPagina = logDados.Paginacao.RegistrosPorPagina;
            }

            pular  = (logDados.Paginacao.PaginaAtual < 2 ? 0 : logDados.Paginacao.PaginaAtual - 1);
            pular *= registrosPorPagina;

            string sqlSelect     = $"SELECT l.*, qq.qtd AS qtd_query FROM Log l ";
            string sqlWhere      = "";
            string sqlJoin       = "CROSS JOIN (";
            string sqlSelectJoin = "SELECT Count(*) AS qtd FROM Log ";
            string sqlOrder      = ") AS qq ORDER BY l.id ";
            string sqlPaginacao  = "OFFSET " + pular + " ROWS FETCH NEXT " + registrosPorPagina + " ROWS ONLY";

            string sqlComando = sqlSelect + sqlWhere + sqlJoin + sqlSelectJoin + sqlWhere + sqlOrder + sqlPaginacao;

            cmd.Comando(sqlComando);

            dr = cmd.ExecutarComandoLista();

            if (dr != null)
            {
                ret = new LogTransfer();

                if (dr.HasRows)
                {
                    while (dr.Read())
                    {
                        LogEntity log = new LogEntity();

                        log.Sistema  = Conversao.RetornarString(dr["sistema"]);
                        log.Data     = Conversao.RetornarInt32(dr["data"]);
                        log.Hora     = Conversao.RetornarInt32(dr["hora"]);
                        log.Controle = Conversao.RetornarString(dr["controle"]);
                        log.Ip       = Conversao.RetornarString(dr["ip"]);
                        log.Tipo     = Conversao.RetornarInt32(dr["tipo"]);
                        log.Mensagem = Conversao.RetornarString(dr["mensagem"]);
                        log.Pilha    = Conversao.RetornarString(dr["pilha"]);
                        log.Origem   = Conversao.RetornarString(dr["origem"]);
                        log.Critico  = Conversao.RetornarBoolean(dr["critico"]);

                        totalRegistros = Conversao.RetornarInt32(dr["qtd_query"]);

                        ret.Incluir(log);
                    }

                    ret.Paginacao.RegistrosPorPagina = registrosPorPagina;
                    ret.Paginacao.TotalRegistros     = totalRegistros;
                }
            }

            dr.Dispose();

            return(ret);
        }