Esempio n. 1
0
        public List <Noticia> ListarNoticiasBuscaAvancada(BuscaModel search)
        {
            Expression <Func <Noticia, bool> > autor     = registro => true;
            Expression <Func <Noticia, bool> > titulo    = registro => true;
            Expression <Func <Noticia, bool> > categoria = registro => true;
            Expression <Func <Noticia, bool> > data      = registro => true;

            if (search.IdAutor > 0)
            {
                autor = (Noticia registro) => registro.IdAutor == search.IdAutor;
            }

            if (search.IdCategoria > 0)
            {
                categoria = (Noticia registro) => registro.IdCategoria == search.IdCategoria;
            }

            if (!string.IsNullOrEmpty(search.Titulo))
            {
                titulo = (Noticia registro) => registro.Titulo.ToLower().Contains(search.Titulo.ToLower());
            }

            if (search.DataFinal != null && search.DataInicial != null)
            {
                categoria = (Noticia registro) => registro.Data >= search.DataInicial && registro.Data <= search.DataFinal;
            }

            return(Context.Noticia
                   .Where(autor)
                   .Where(titulo)
                   .Where(categoria)
                   .Where(data)
                   .OrderByDescending(x => x.Data).Take(50).ToList());
        }
        public ActionResult Buscar(string q)
        {
            if (!ModelState.IsValid)
            {
                return(HttpNotFound());
            }

            int IdUsuario = ((UsuarioModel)Session["oUser"]).ID;

            BuscaModel busca = new BuscaModel();

            busca.Usuarios = UsuarioController.ListarPessoas(q);
            busca.Itens    = TimeLineController.ListarItems(IdUsuario, q);

            return(View(busca));
        }
Esempio n. 3
0
        public ActionResult Index(BuscaModel search)
        {
            var result = new ResultModel()
            {
                ClasseDiv  = "",
                CodigoErro = 0,
                Exibir     = false,
                Mensagem   = "",
                Resposta   = HttpStatusCode.Continue
            };

            var model    = new ListarNoticiasModel();
            var noticias = _repository.ListarNoticiasBuscaAvancada(search);

            if (noticias.Count == 0)
            {
                result.Mensagem  = "Não foi encontrado nenhuma notícia para a busca realizada.";
                result.Exibir    = true;
                result.ClasseDiv = "sucsses";
            }

            foreach (var item in noticias)
            {
                string corpo = _funcoes.RemoveTagsHTML(item.Corpo);
                model.NoticiasListar.Add(new NoticiasListar
                {
                    Corpo          = corpo,
                    CorpoSubString = _funcoes.RetornarSubString(200, corpo),
                    Data           = item.Data,
                    FotoHome       = item.FotoHome,
                    Id             = item.Id,
                    IdAutor        = item.IdAutor,
                    IdCategoria    = item.IdCategoria,
                    Status         = item.Status,
                    Titulo         = item.Titulo,
                    VaiParaHome    = item.VaiParaHome,
                    Categoria      = item.Categoria?.Descricao,
                    Autor          = item.Autor?.Nome
                });
            }

            model.CategoriasListar = ListarCategorias();
            model.AutoresListar    = ListarAutores();
            ViewBag.Result         = result;
            return(RedirectToAction("Index", model));
        }
Esempio n. 4
0
        public ActionResult Index(string q, int?pagina, string so, string cs, int?pt, BuscaModel model, int?idEmpresa)
        {
            Aviso();
            if (q == null)
            {
                q = "";
            }
            model.Termo = q;
            var lista         = clienteDal.Listar(model.Termo, idEmpresa).Where(x => x.Empresa.Nome.ToLower().Contains(q.ToLower()));
            int paginaTamanho = (pt ?? 10);
            int paginaNumero  = (pagina ?? 1);


            ViewBag.Action        = ActionCorrente();
            ViewBag.Pagina        = pagina;
            ViewBag.PaginaTamanho = pt;
            ViewBag.CurrentSort   = so;
            ViewBag.SortOrder     = so;
            ViewBag.Query         = q;
            ViewBag.idEmpresa     = idEmpresa;

            switch (so)
            {
            case "nome":

                if (so.Equals(cs))
                {
                    return(View(lista.OrderByDescending(x => x.Nome).ToPagedList(paginaNumero, paginaTamanho)));
                }
                else
                {
                    return(View(lista.OrderBy(x => x.Nome).ToPagedList(paginaNumero, paginaTamanho)));
                }
                break;

            case "email":

                if (so.Equals(cs))
                {
                    return(View(lista.OrderByDescending(x => x.Email).ToPagedList(paginaNumero, paginaTamanho)));
                }
                else
                {
                    return(View(lista.OrderBy(x => x.Email).ToPagedList(paginaNumero, paginaTamanho)));
                }
                break;

            default:
                return(View(lista.ToPagedList(paginaNumero, paginaTamanho)));

                break;
            }
        }
Esempio n. 5
0
        public ActionResult Index(string filtro = null, string o = "relevancia", string q = null, int p = 1)
        {
            /* verificação da página */
            if (p <= 0)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.NotFound));
            }

            if (q == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            /* "cooka" o usuário com as palavras utilizadas */

            q = q.TrimEnd();

            SetKeywords(q);

            var resultados = new List <SearchResponse>();

            var oBusca = new SearchService();

            /* noticias */
            var lstNoticias = oBusca.Search(Constants.ElasticIndexName, q, p, Constants.TakeNoticias, 0.6);

            resultados.AddRange(lstNoticias);

            /* counts do menu */
            var model = new BuscaModel
            {
                Count         = resultados.Count,
                CountNoticias = resultados.Count(),
            };

            /* aplica filtro de tipo */
            if (filtro == null)
            {
                resultados             = resultados.ToList();
                ViewBag.TotalRegistros = model.Count;
            }
            else if (filtro == "noticias")
            {
                resultados             = resultados.ToList();
                ViewBag.TotalRegistros = model.CountNoticias;
            }

            //Ordena por data
            model.Resultados = resultados.OrderByDescending(r => r.Data).Skip((p - 1) * Constants.TakeNoticias).Take(Constants.TakeNoticias).ToList();

            ViewBag.PaginaAtual = p;

            var totalPaginas = Math.Ceiling(((double)ViewBag.TotalRegistros / Constants.TakeNoticias));

            if (Convert.ToInt32(totalPaginas) > 1)
            {
                ViewBag.Paginacao = Pagination.AddPagination(ViewBag.PaginaAtual, Convert.ToInt32(totalPaginas), 5, true);
            }

            ViewBag.ActiveNav   = "Resultado da busca";
            ViewBag.SearchWords = q;
            ViewBag.Filter      = filtro;
            ViewBag.Order       = o;

            model.Title       = string.Format("Resultado da busca por {0} - Massa News", q);
            model.Description = string.Format("Confira todos os resultados da busca por {0}. Notícias, posts, fotos, vídeos e muito mais no Massa News.", q);
            model.Robots      = "index, follow";

            return(View(model));
        }