예제 #1
0
        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();

            RecuperarNoticiaMaisConcordadaQueryModel noticiaQueryModel = _tituloNoticiaQuery.Query.RecuperarNoticiaMaisConcordada();
            Noticia noticia = _noticiaRepository.Find(noticiaQueryModel.NoticiaId);

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

            _tituloNoticiaRepository.Save(titulo);

            return(Task.CompletedTask);
        }
예제 #2
0
        public RecuperarNoticiaMaisConcordadaQueryModel RecuperarNoticiaMaisConcordada()
        {
            DateTime seteDiasAtras = DateTime.Now.AddDays(-7);

            RecuperarNoticiaMaisConcordadaQueryModel 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.Concordo).WithAlias(() => noticiaQueryModel.Quantidade))
                        .OrderByAlias(() => noticiaQueryModel.Quantidade).Desc
                        .TransformUsing(Transformers.AliasToBean <RecuperarNoticiaMaisConcordadaQueryModel>())
                        .List <RecuperarNoticiaMaisConcordadaQueryModel>()
                        .FirstOrDefault();

            return(query);
        }