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

            RecuperarUsuarioComMaisDownvotesNaSemanaQueryModel usuarioQueryModel = _tituloUsuarioQuery.Query.RecuperarUsuarioComMaisDownvotesNaSemana();
            Usuario usuario = _usuarioRepository.Find(usuarioQueryModel.UsuarioId);

            var titulo = new TituloUsuario(Titulos.USUARIO_COM_MAIOR_QUANTIDADE_DE_DOWNVOTES.ToString(), usuarioQueryModel.QuantidadeDownvotes, usuario);

            _tituloUsuarioRepository.Save(titulo);

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

            RecuperarUsuarioComMaisDownvotesNaSemanaQueryModel 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.DownVotes).WithAlias(() => usuarioQueryModel.QuantidadeDownvotes))
                        .OrderByAlias(() => usuarioQueryModel.QuantidadeDownvotes).Desc
                        .TransformUsing(Transformers.AliasToBean <RecuperarUsuarioComMaisDownvotesNaSemanaQueryModel>())
                        .List <RecuperarUsuarioComMaisDownvotesNaSemanaQueryModel>()
                        .FirstOrDefault();

            return(query);
        }