Пример #1
0
        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));
        }
Пример #2
0
        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));
        }