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

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

            RecuperarUsuarioComMaisUpvotesNaSemanaQueryModel usuarioQueryModel = _tituloUsuarioQuery.Query.RecuperarUsuarioComMaisUpvotesNaSemana();
            Usuario usuario = _usuarioRepository.Find(usuarioQueryModel.UsuarioId);

            var titulo = new TituloUsuario(Titulos.USUARIO_COM_MAIOR_QUANTIDADE_DE_UPVOTES.ToString(), usuarioQueryModel.QuantidadeUpvotes, usuario);

            _tituloUsuarioRepository.Save(titulo);

            return(Task.CompletedTask);
        }
示例#2
0
        public RecuperarUsuarioComMaisUpvotesNaSemanaQueryModel RecuperarUsuarioComMaisUpvotesNaSemana()
        {
            DateTime seteDiasAtras = DateTime.Now.AddDays(-7);

            RecuperarUsuarioComMaisUpvotesNaSemanaQueryModel usuarioQueryModel = null;

            seteDiasAtras = new DateTime(2019, 03, 30);

            Usuario usuarioAlias = null;

            var query = _session.QueryOver <Publicacao>()
                        .JoinAlias(x => x.Usuario, () => usuarioAlias)
                        .Where(x => x.Data >= seteDiasAtras)
                        .SelectList(l => l
                                    .Select(x => usuarioAlias.Id).WithAlias(() => usuarioQueryModel.UsuarioId)
                                    .SelectGroup(x => usuarioAlias.Id)
                                    .SelectCount(x => x.UpVotes).WithAlias(() => usuarioQueryModel.QuantidadeUpvotes))
                        .OrderByAlias(() => usuarioQueryModel.QuantidadeUpvotes).Desc
                        .TransformUsing(Transformers.AliasToBean <RecuperarUsuarioComMaisUpvotesNaSemanaQueryModel>())
                        .List <RecuperarUsuarioComMaisUpvotesNaSemanaQueryModel>()
                        .FirstOrDefault();

            return(query);
        }