Ejemplo n.º 1
0
        public PartialViewResult Sidebar()
        {
            string key = primeKey + "Sidebar:TNoticias:TEditoriais:TColunista";

            SideBarHomeViewModel retorno = null;

            Func <object, SideBarHomeViewModel> funcao = t => SidebarDB();

            retorno = RedisService.GetOrSetToRedis(key, funcao, 300);

            var bannersGeneral = BannersCached();

            retorno.Banner = bannersGeneral
                             .Where(x => x.Chave == "banner-editoria-1" && x.AreaBannerAtivo.Value)
                             .OrderBy(x => Guid.NewGuid()).FirstOrDefault();
            retorno.Banner2 = bannersGeneral
                              .Where(x => x.Chave == "banner-editoria-2" && x.AreaBannerAtivo.Value)
                              .OrderBy(x => Guid.NewGuid()).FirstOrDefault();

            return(PartialView("_Sidebar", retorno));
        }
Ejemplo n.º 2
0
        private SideBarHomeViewModel SidebarDB()
        {
            db.Configuration.LazyLoadingEnabled = false;

            var maisLidas = new List <NoticiasViewModel>();

            var hoje     = DateTime.Now;
            var ultimos7 = DateTime.Now.Date.AddDays(-7);

            var noticiasGeneral = db.Noticias.Include(x => x.Editoriais).Where(x =>
                                                                               !x.excluido &&
                                                                               x.Colunista == null &&
                                                                               x.dataCadastro >= ultimos7 &&
                                                                               x.liberado &&
                                                                               x.Editoriais.Any(e => e.ativo && !e.excluido))
                                  .Select(noticia => new NoticiasViewModel
            {
                Chamada      = noticia.chamada,
                DataCadastro = noticia.dataCadastro,
                Editoriais   = noticia.Editoriais.Select(editorial => new EditorialNoticiaViewModel
                {
                    Ativo    = editorial.ativo,
                    Chave    = editorial.chave,
                    Especial = editorial.especial,
                    Esporte  = editorial.esportes,
                    Excluido = editorial.excluido,
                    Nome     = editorial.nome
                }).Take(1),
                Foto         = noticia.foto,
                Id           = noticia.id,
                TipoDestaque = noticia.TipoDestaque,
                Titulo       = noticia.titulo,
                TituloCapa   = noticia.TituloCapa,
                Url          = noticia.url,
                Audio        = noticia.audio,
                Liberado     = noticia.liberado,
                Excluido     = noticia.excluido,
                IdColunista  = noticia.idColunista,
                Plantao      = noticia.plantao
            }).OrderByDescending(y => y.DataCadastro).Take(100).AsNoTracking().ToList();

            //maisLidas = noticiasGeneral.Where(x => x.DataCadastro >= ultimos7).OrderByDescending(x => x.Visualizacao).Take(5).ToList();

            //if (maisLidas.Count == 0)
            //{
            //    maisLidas = noticiasGeneral.OrderByDescending(x => x.Visualizacao).Take(5).ToList();
            //}

            var colteste = db.Colunista
                           .Where(x => !x.excluido && x.liberado && !x.nome.Equals("Cadu Doné") && !x.nome.Equals("Emanuel Carneiro"))
                           .Select(c => new ColunistaViewModel
            {
                Chave  = c.chave,
                Foto   = c.foto,
                Nome   = c.nome,
                Titulo = c.Noticias
                         .OrderByDescending(noticia => noticia.dataCadastro)
                         .FirstOrDefault(x => !x.excluido && x.liberado).titulo,
                Url = c.Noticias
                      .OrderByDescending(noticia => noticia.dataCadastro)
                      .FirstOrDefault(x => !x.excluido && x.liberado).url,
                UltimaAtualizacao = c.Noticias.Count > 0 ?
                                    c.Noticias.OrderByDescending(noticia => noticia.dataAtualizacao)
                                    .FirstOrDefault(x => !x.excluido && x.liberado && x.dataAtualizacao < DateTime.Now).dataAtualizacao
                    : DateTime.MinValue
            })
                           .OrderByDescending(x => x.UltimaAtualizacao)
                           .ToList();
            var colunista = new ObservableCollection <ColunistaViewModel>(colteste);

            if (colunista.Where(e => e.Nome.Equals("Cadu Doné")).FirstOrDefault() == null)
            {
                if (db.Colunista.Where(x => !x.excluido && x.liberado && x.nome.Equals("Cadu Doné")).FirstOrDefault() != null)
                {
                    colunista.Add(db.Colunista
                                  .Where(x => !x.excluido && x.liberado && x.nome.Equals("Cadu Doné"))
                                  .OrderBy(x => x.Ordem)
                                  .Select(c => new ColunistaViewModel
                    {
                        Chave  = c.chave,
                        Foto   = c.foto,
                        Nome   = c.nome,
                        Titulo = c.Noticias
                                 .OrderByDescending(noticia => noticia.dataCadastro)
                                 .FirstOrDefault(x => !x.excluido && x.liberado).titulo,
                        Url = c.Noticias
                              .OrderByDescending(noticia => noticia.dataCadastro)
                              .FirstOrDefault(x => !x.excluido && x.liberado).url,
                    }).FirstOrDefault());
                    colunista.Move(colunista.IndexOf(colunista.Where(e => e.Nome.Equals("Cadu Doné")).FirstOrDefault()), 0);
                }
            }
            if (colunista.Where(e => e.Nome.Equals("Emanuel Carneiro")).FirstOrDefault() == null)
            {
                if (db.Colunista.Where(x => !x.excluido && x.liberado && x.nome.Equals("Emanuel Carneiro")).FirstOrDefault() != null)
                {
                    colunista.Add(db.Colunista
                                  .Where(x => !x.excluido && x.liberado && x.nome.Equals("Emanuel Carneiro"))
                                  .OrderBy(x => x.Ordem)
                                  .Select(c => new ColunistaViewModel
                    {
                        Chave  = c.chave,
                        Foto   = c.foto,
                        Nome   = c.nome,
                        Titulo = c.Noticias
                                 .OrderByDescending(noticia => noticia.dataCadastro)
                                 .FirstOrDefault(x => !x.excluido && x.liberado).titulo,
                        Url = c.Noticias
                              .OrderByDescending(noticia => noticia.dataCadastro)
                              .FirstOrDefault(x => !x.excluido && x.liberado).url,
                    }).FirstOrDefault());
                    colunista.Move(colunista.IndexOf(colunista.Where(e => e.Nome.Equals("Emanuel Carneiro")).FirstOrDefault()), 0);
                }
            }

            var podcastViewModel = db.Noticias.Include(x => x.Editoriais)
                                   .Where(x => !x.excluido && x.liberado && !x.destaqueHome && x.audio != null &&
                                          x.Editoriais.Select(editorial => new {
                excluido = editorial.excluido, ativo = editorial.ativo
            }).Any(p => !p.excluido && p.ativo))
                                   .Select(podcast => new PodcastViewModel {
                Audio        = podcast.audio,
                DataCadastro = podcast.dataAtualizacao,
                Id           = podcast.id,
                Nome         = podcast.Editoriais.FirstOrDefault() != null ? podcast.Editoriais.FirstOrDefault().nome : string.Empty,
                Titulo       = podcast.titulo
            }).OrderByDescending(y => y.DataCadastro).Take(3).ToList();

            SideBarHomeViewModel viewModel = new SideBarHomeViewModel
            {
                Colunistas = colunista.ToList(),
                Podcast    = podcastViewModel
            };

            return(viewModel);
        }
Ejemplo n.º 3
0
        private SideBarHomeViewModel SidebarHomeDB()
        {
            var maisLidas = new List <NoticiasViewModel>();

            var hoje     = DateTime.Now;
            var ultimos7 = DateTime.Now.Date.AddDays(-7);

            #region DEclaração de performance
            var noticiasGeneral = db.Noticias.Where(x => !x.excluido && x.liberado && x.dataCadastro >= ultimos7 && x.Editoriais.Any(e => e.ativo && !e.excluido))
                                  .Select(noticia => new NoticiasViewModel
            {
                Chamada      = noticia.chamada,
                DataCadastro = noticia.dataCadastro,
                Editoriais   = noticia.Editoriais.Select(editorial => new EditorialNoticiaViewModel
                {
                    Ativo    = editorial.ativo,
                    Chave    = editorial.chave,
                    Especial = editorial.especial,
                    Esporte  = editorial.esportes,
                    Excluido = editorial.excluido,
                    Nome     = editorial.nome
                }),
                Foto         = noticia.foto,
                FotoCredito  = noticia.fotoCredito,
                Id           = noticia.id,
                Subtitulo    = noticia.subtitulo,
                TipoDestaque = noticia.TipoDestaque,
                Titulo       = noticia.titulo,
                TituloCapa   = noticia.TituloCapa,
                Url          = noticia.url,
                Audio        = noticia.audio,
                Liberado     = noticia.liberado,
                Excluido     = noticia.excluido,
                IdColunista  = noticia.idColunista,
                Plantao      = noticia.plantao,
                Visualizacao = noticia.visualizacao,
                VideoYoutube = noticia.videoYoutube,
                Galeria      = noticia.Galeria
            }).OrderByDescending(y => y.DataCadastro).Take(40).ToList();

            #endregion

            var plantao = noticiasGeneral
                          .Where(x => x.Plantao && x.DataCadastro >= hoje && x.Editoriais.Any(p => p.Especial == false))
                          .OrderByDescending(x => x.DataCadastro)
                          .Select(noticia => new PlantaoViewModel {
                Titulo = noticia.Titulo, Hora = noticia.DataCadastro
            })
                          .ToList();

            //if (maisLidas.Count == 0)
            //{
            //    maisLidas = noticiasGeneral
            //        .Where(x => !x.Plantao && x.IdColunista == null && x.Editoriais.Any(p => p.Especial == false))
            //        .OrderByDescending(x => x.Visualizacao)
            //        .Take(5)
            //        .ToList();
            //}
            //var video =
            //    noticiasGeneral.Select(
            //        n =>
            //            n.Galeria == null ? null : n.Galeria.Midias.FirstOrDefault(
            //                m => !m.excluido
            //                && m.video
            //                && !m.Galeria.excluido
            //                && m.Galeria.ativo))
            //                .FirstOrDefault();

            var colteste = db.Colunista
                           .Where(x => !x.excluido && x.liberado && !x.nome.Equals("Cadu Doné") && !x.nome.Equals("Emanuel Carneiro"))
                           .Select(c => new ColunistaViewModel
            {
                Chave  = c.chave,
                Foto   = c.foto,
                Nome   = c.nome,
                Titulo = c.Noticias
                         .OrderByDescending(noticia => noticia.dataAtualizacao)
                         .FirstOrDefault(x => !x.excluido && x.liberado && x.dataAtualizacao < DateTime.Now).titulo,
                Url = c.Noticias
                      .OrderByDescending(noticia => noticia.dataAtualizacao)
                      .FirstOrDefault(x => !x.excluido && x.liberado && x.dataAtualizacao < DateTime.Now).url,
                UltimaAtualizacao = c.Noticias.Count > 0 ?
                                    c.Noticias.OrderByDescending(noticia => noticia.dataAtualizacao)
                                    .FirstOrDefault(x => !x.excluido && x.liberado && x.dataAtualizacao < DateTime.Now).dataAtualizacao
                    : DateTime.MinValue
            })
                           .OrderByDescending(x => x.UltimaAtualizacao)
                           .ToList();
            var colunista = new ObservableCollection <ColunistaViewModel>(colteste);
            if (colunista.Where(e => e.Nome.Equals("Cadu Doné")).FirstOrDefault() == null)
            {
                if (db.Colunista.Where(x => !x.excluido && x.liberado && x.nome.Equals("Cadu Doné")).FirstOrDefault() != null)
                {
                    colunista.Add(db.Colunista
                                  .Where(x => !x.excluido && x.liberado && x.nome.Equals("Cadu Doné"))
                                  .OrderBy(x => x.Ordem)
                                  .Select(c => new ColunistaViewModel
                    {
                        Chave  = c.chave,
                        Foto   = c.foto,
                        Nome   = c.nome,
                        Titulo = c.Noticias
                                 .OrderByDescending(noticia => noticia.dataAtualizacao)
                                 .FirstOrDefault(x => !x.excluido && x.liberado && x.dataAtualizacao < DateTime.Now).titulo,
                        Url = c.Noticias
                              .OrderByDescending(noticia => noticia.dataAtualizacao)
                              .FirstOrDefault(x => !x.excluido && x.liberado && x.dataAtualizacao < DateTime.Now).url,
                    }).FirstOrDefault());
                    colunista.Move(colunista.IndexOf(colunista.Where(e => e.Nome.Equals("Cadu Doné")).FirstOrDefault()), 0);
                }
            }
            if (colunista.Where(e => e.Nome.Equals("Emanuel Carneiro")).FirstOrDefault() == null)
            {
                if (db.Colunista.Where(x => !x.excluido && x.liberado && x.nome.Equals("Emanuel Carneiro")).FirstOrDefault() != null)
                {
                    colunista.Add(db.Colunista
                                  .Where(x => !x.excluido && x.liberado && x.nome.Equals("Emanuel Carneiro"))
                                  .OrderBy(x => x.Ordem)
                                  .Select(c => new ColunistaViewModel
                    {
                        Chave  = c.chave,
                        Foto   = c.foto,
                        Nome   = c.nome,
                        Titulo = c.Noticias
                                 .OrderByDescending(noticia => noticia.dataAtualizacao)
                                 .FirstOrDefault(x => !x.excluido && x.liberado && x.dataAtualizacao < DateTime.Now).titulo,
                        Url = c.Noticias
                              .OrderByDescending(noticia => noticia.dataAtualizacao)
                              .FirstOrDefault(x => !x.excluido && x.liberado && x.dataAtualizacao < DateTime.Now).url,
                    }).FirstOrDefault());
                    colunista.Move(colunista.IndexOf(colunista.Where(e => e.Nome.Equals("Emanuel Carneiro")).FirstOrDefault()), 0);
                }
            }

            var enquete = db.Enquete
                          .Where(x => !x.excluido && x.ativa && hoje >= x.dataInicioVotacao && hoje <= x.dataFimVotacao)
                          .Select(e => new EnqueteViewModel {
                pergunta  = e.pergunta,
                Respostas = e.Respostas.Select(r => new RespostaEnqueteViewModel {
                    id       = r.id,
                    resposta = r.resposta,
                    votos    = r.votos
                }).ToList()
            }).FirstOrDefault();

            var viewModel = new SideBarHomeViewModel
            {
                Colunistas = colunista.ToList(),
                Enquete    = enquete,
                PlantaoBH  = plantao
            };

            return(viewModel);
        }