public ActionResult T1(string chave, int?page) { var hoje = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0); string key = primeKey + "T1:Noticias:" + chave; Func <object, List <NoticiaEspecialViewModel> > funcao = t => NoticiasEditoriaCached(chave); var noticiasEditoria = RedisService.GetOrSetToRedis(key, funcao, 60); key = primeKey + "T1:Editoria:" + chave; Func <object, EditoriaEspecialViewModel> funcao2 = t => EditoriaEspecial(chave); var editoria = RedisService.GetOrSetToRedis(key, funcao2, 600); var noticiasDestaque = noticiasEditoria.Where(x => x.Destaque) .Take(1).ToList(); int pageNumber = (page ?? 1); var pagination = noticiasEditoria.Where(q => !noticiasDestaque.Select(n => n.Id).Contains(q.Id)); var viewModel = new EspeciaisViewModel { Editoria = editoria, destaques = noticiasDestaque, noticias = pagination.ToPagedList(pageNumber, 6) }; return(View(viewModel)); }
public ActionResult T2(string chave, int?page, string palavraChave = "", string dataInicio = "", string dataFinal = "") { var hoje = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0); string key = primeKey + "T2:Noticias:" + chave; Func <object, List <NoticiaEspecialViewModel> > funcao = t => NoticiasEditoriaCached(chave); var noticiasEditoria = RedisService.GetOrSetToRedis(key, funcao, 60); key = primeKey + "T2:Editoria:" + chave; Func <object, EditoriaEspecialViewModel> funcao2 = t => EditoriaEspecial(chave); var editoria = RedisService.GetOrSetToRedis(key, funcao2, 600); if (!string.IsNullOrEmpty(palavraChave)) { noticiasEditoria = noticiasEditoria.Where(n => n.titulo.ToLower().Contains(palavraChave.ToLower()) || n.texto.ToLower().Contains(palavraChave.ToLower()) || n.subTitulo.ToLower().Contains(palavraChave.ToLower()) || n.tituloCapa.ToLower().Contains(palavraChave.ToLower()) || n.chamada.ToLower().Contains(palavraChave.ToLower()) ).ToList(); } if (!string.IsNullOrEmpty(dataInicio)) { DateTime DataInicio = DateTime.Parse(dataInicio).AddHours(0).AddMinutes(0).AddSeconds(0); noticiasEditoria = noticiasEditoria.Where(d => d.dataCadastro >= DataInicio).ToList(); } if (!string.IsNullOrEmpty(dataFinal)) { DateTime DataFim = DateTime.Parse(dataFinal).AddHours(23).AddMinutes(59).AddSeconds(59); noticiasEditoria = noticiasEditoria.Where(d => d.dataCadastro <= DataFim).ToList(); } var noticiasDestaque = noticiasEditoria.Where(x => x.Destaque) .Take(2).ToList(); int pageNumber = (page ?? 1); var pagination = noticiasEditoria.Where(q => !noticiasDestaque.Select(n => n.Id).Contains(q.Id)); var viewModel = new EspeciaisViewModel { Editoria = editoria, destaques = noticiasDestaque, noticias = pagination.ToPagedList(pageNumber, 9) }; return(View(viewModel)); }