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)); }
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)); }
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; } }
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)); }