public IActionResult BuscaVisitas(int num, int zonas, int delegacao, int area, int condominio,
                                          int venda, int d1d2, int tipovisita, int rejeicao, int statuscond, String condominioinput,
                                          String agcomercialinput, String localidadeinput, String bairro, String logradouroinput,
                                          String diavisita1, String diavisita2, int Numero1, int Numero2, int lote)
        {
            // definicoes da paginacao
            var pagina        = 0;
            var PaginaClicada = num;
            var itensPagina   = 20;

            if (PaginaClicada != 0)
            {
                pagina = (PaginaClicada - 1) * 20;
            }

            //---- lógica de restrição de filtros de acordo com o acesso do usuário


            var d         = HttpContext.Session.GetInt32("Delegação");
            var z         = HttpContext.Session.GetInt32("Zona");
            var quantArea = HttpContext.Session.GetInt32("QuantidadeArea");

            if (quantArea != null && ((int)quantArea == 1))
            {
                area = (int)HttpContext.Session.GetInt32("Área");
            }
            // se for cliente, vai ter as variáveis de sessão preenchidas
            zonas     = (z != null) ? (int)z : zonas;
            delegacao = (d != null) ? (int)d : delegacao;


            //----FIM lógica de restrição de filtros de acordo com o acesso do usuário

            // retorna a consulta filtrada pelos parametros
            var visitas = _VisitasRepository.GetVisitasFiltro(zonas, delegacao, area, condominio);



            // filtra as seguintes colunas
            if (lote != 0)
            {
                visitas = visitas.Where(v => v.IdLote == lote);
            }

            if (venda != 0)
            {
                visitas = visitas.Where(c => c.Vendaid == venda);
            }

            if (d1d2 != 0)
            {
                visitas = visitas.Where(c => c.Dxid == d1d2);
            }

            if (tipovisita != 0)
            {
                visitas = visitas.Where(c => c.TipoVisitaid == tipovisita);
            }

            if (rejeicao != 0)
            {
                visitas = visitas.Where(c => c.Negativaid == rejeicao);
            }

            if (statuscond != 0)
            {
                visitas = visitas.Where(c => c.Statusid == statuscond);
            }

            if (condominioinput != null)
            {
                visitas = visitas.Where(c => c.Condominio.Contains(condominioinput));
            }

            if (agcomercialinput != null)
            {
                visitas = visitas.Where(c => c.AgVisita.Contains(agcomercialinput));
            }

            if (localidadeinput != null)
            {
                visitas = visitas.Where(c => c.Localidade.Contains(localidadeinput));
            }

            if (bairro != null)
            {
                visitas = visitas.Where(c => c.Bairro.Contains(bairro));
            }

            if (logradouroinput != null)
            {
                visitas = visitas.Where(c => c.Logradouro.Contains(logradouroinput));
            }

            if (Numero1 != 0 && Numero2 != 0)
            {
                visitas = visitas.Where(c => c.Num >= Numero1 && c.Num <= Numero2).OrderBy(c => c.Num);
            }



            if (diavisita1 != null && diavisita2 != null)
            {
                DateTime dt  = Convert.ToDateTime(diavisita1);
                DateTime dt2 = Convert.ToDateTime(diavisita2);

                visitas = visitas.Where(w => w.DataHora >= dt && w.DataHora <= dt2

                                        );
            }


            var retorno = new
            {
                // paginacao
                visitas  = visitas.Skip(pagina).Take(itensPagina),
                contagem = visitas.Count() // contagem
            };

            return(Json(retorno));
        }
        public IActionResult BuscaVisitas(int num, int zonas, int delegacao, int area, int condominio,
                                          int venda, int d1d2, int tipovisita, int rejeicao, int statuscond, String condominioinput,
                                          String agcomercialinput, String localidadeinput, String bairro, String logradouroinput,
                                          String diavisita1, String diavisita2, int Numero1, int Numero2, int lote)
        {
            // definicoes da paginacao
            var pagina        = 0;
            var PaginaClicada = num;
            var itensPagina   = 20;

            if (PaginaClicada != 0)
            {
                pagina = (PaginaClicada - 1) * 20;
            }



            // retorna a consulta filtrada pelos parametros
            var visitas = _VisitasRepository.GetVisitasFiltro(zonas, delegacao, area, condominio);



            // filtra as seguintes colunas
            if (lote != 0)
            {
                visitas = visitas.Where(v => v.IdLote == lote);
            }

            if (venda != 0)
            {
                visitas = visitas.Where(c => c.Vendaid == venda);
            }

            if (d1d2 != 0)
            {
                visitas = visitas.Where(c => c.Dxid == d1d2);
            }

            if (tipovisita != 0)
            {
                visitas = visitas.Where(c => c.TipoVisitaid == tipovisita);
            }

            if (rejeicao != 0)
            {
                visitas = visitas.Where(c => c.Negativaid == rejeicao);
            }

            if (statuscond != 0)
            {
                visitas = visitas.Where(c => c.Statusid == statuscond);
            }

            if (condominioinput != null)
            {
                visitas = visitas.Where(c => c.Condominio.Contains(condominioinput));
            }

            if (agcomercialinput != null)
            {
                visitas = visitas.Where(c => c.AgVisita.Contains(agcomercialinput));
            }

            if (localidadeinput != null)
            {
                visitas = visitas.Where(c => c.Localidade.Contains(localidadeinput));
            }

            if (bairro != null)
            {
                visitas = visitas.Where(c => c.Bairro.Contains(bairro));
            }

            if (logradouroinput != null)
            {
                visitas = visitas.Where(c => c.Logradouro.Contains(logradouroinput));
            }

            if (Numero1 != 0 && Numero2 != 0)
            {
                visitas = visitas.Where(c => c.Num >= Numero1 && c.Num <= Numero2).OrderBy(c => c.Num);
            }



            if (diavisita1 != null && diavisita2 != null)
            {
                DateTime dt  = Convert.ToDateTime(diavisita1);
                DateTime dt2 = Convert.ToDateTime(diavisita2);

                visitas = visitas.Where(w => w.DataHora >= dt && w.DataHora <= dt2

                                        );
            }


            var retorno = new
            {
                // paginacao
                visitas  = visitas.Skip(pagina).Take(itensPagina),
                contagem = visitas.Count() // contagem
            };

            return(Json(retorno));
        }