public Task Execute(IJobExecutionContext context)
        {
            string hqlUpdate = "update tb_titulo t set t.atv_titulo = false where t.atv_titulo = true";

            _tituloNoticiaQuery.Query.GetSession().CreateQuery(hqlUpdate)
            .ExecuteUpdate();

            RecuperarNoticiaMaisDiscordadaQueryModel noticiaQueryModel = _tituloNoticiaQuery.Query.RecuperarNoticiaMaisDiscordada();
            Noticia noticia = _noticiaRepository.Find(noticiaQueryModel.NoticiaId);

            var titulo = new TituloNoticia(Titulos.NOTICIA_MAIS_DISCORDADA.ToString(), noticiaQueryModel.Quantidade, noticia);

            _tituloNoticiaRepository.Save(titulo);

            return(Task.CompletedTask);
        }
Beispiel #2
0
        public RecuperarNoticiaMaisDiscordadaQueryModel RecuperarNoticiaMaisDiscordada()
        {
            DateTime seteDiasAtras = DateTime.Now.AddDays(-7);

            RecuperarNoticiaMaisDiscordadaQueryModel noticiaQueryModel = null;

            Noticia noticiaAlias = null;

            var query = _session.QueryOver <Opiniao>()
                        .JoinAlias(x => x.Noticia, () => noticiaAlias)
                        .Where(x => x.Data >= seteDiasAtras)
                        .SelectList(l => l
                                    .Select(x => x.Id).WithAlias(() => noticiaQueryModel.NoticiaId)
                                    .SelectGroup(x => noticiaAlias.Id)
                                    .SelectCount(x => x.Tipo == TipoOpiniao.Discordo).WithAlias(() => noticiaQueryModel.Quantidade))
                        .OrderByAlias(() => noticiaQueryModel.Quantidade).Desc
                        .TransformUsing(Transformers.AliasToBean <RecuperarNoticiaMaisDiscordadaQueryModel>())
                        .List <RecuperarNoticiaMaisDiscordadaQueryModel>()
                        .FirstOrDefault();

            return(query);
        }