public async Task <PagedList <Usuario> > BuscarPorFiltroComPaginacao(UsuarioParams parametros)
        {
            try
            {
                var prodPaged = _context.Usuarios.AsQueryable();


                if (parametros.Filter != null)
                {
                    prodPaged = prodPaged.Where(x => x.Nome.ToLower().Contains(parametros.Filter.ToLower()) ||
                                                x.Email.ToLower().Contains(parametros.Filter.ToLower()) ||
                                                x.Role.ToLower().Contains(parametros.Filter.ToLower()));
                }
                if (parametros.SortOrder.ToLower().Equals("asc"))
                {
                    prodPaged = prodPaged.OrderBy(prod => prod.Nome);
                }
                if (parametros.SortOrder.ToLower().Equals("desc"))
                {
                    prodPaged = prodPaged.OrderByDescending(prod => prod.Nome);
                }

                var result = await prodPaged.ToListAsync();

                return(PagedList <Usuario> .ToPagedList(result, parametros.NumeroDaPaginaAtual, parametros.TamanhoDaPagina));
            }
            catch (MySqlException ex)
            {
                _context.Dispose();
                throw new Exception(ex.Message);
            }
        }
 public async Task <PagedList <Usuario> > BuscarPorFiltroComPaginacao(UsuarioParams userParams)
 {
     try
     {
         return(await _repository.BuscarPorFiltroComPaginacao(userParams));
     }
     catch (Exception e)
     {
         throw new Exception(e.Message);
     }
 }
Exemple #3
0
        public async Task <IActionResult> GetUsuarios([FromQuery] UsuarioParams usuarioParams)
        {
            var usuarios = await _repo.GetUsuarios(usuarioParams);

            var usuariosLista = _mapper.Map <IEnumerable <UsuarioListaDto> >(usuarios);

            Response.AddPagination(usuarios.CurrentPage, usuarios.PageSize,
                                   usuarios.TotalCount, usuarios.TotalPages);

            return(Ok(usuariosLista));
        }
Exemple #4
0
        public async Task <IActionResult> BuscarPorFiltroComPaginacao([FromQuery] UsuarioParams parametros)
        {
            PagedList <Usuario> data = await _usuarioService.BuscarPorFiltroComPaginacao(parametros);

            var pageData = new
            {
                data.TotalCount,
                data.PageSize,
                data.CurrentPage,
                data.TotalPages,
                data.HasNext,
                data.HasPrevious
            };

            return(Ok(new { data, pageData }));
        }
Exemple #5
0
        public async Task <ListaPaginada <Usuario> > ObtenerUsuarios(UsuarioParams usuarioParams)
        {
            var usuarios = _contexto.Usuarios.Include(img => img.Imagenes).AsQueryable();

            if (usuarioParams.MeGustadores)
            {
                var usuarioMeGustadores = await ObtenerMeGustasDelUsuario(usuarioParams.UsuarioId, usuarioParams.MeGustadores);

                usuarios = usuarios.Where(x => usuarioMeGustadores.Contains(x.Id));
            }

            if (usuarioParams.MeGustas)
            {
                var usuarioMeGustas = await ObtenerMeGustasDelUsuario(usuarioParams.UsuarioId, usuarioParams.MeGustadores);

                usuarios = usuarios.Where(x => usuarioMeGustas.Contains(x.Id));
            }

            return(await ListaPaginada <Usuario> .Crear(usuarios,
                                                        usuarioParams.NoPagina, usuarioParams.TamanoPagina));
        }
        public async Task <IActionResult> ObtenerUsuarios([FromQuery] UsuarioParams usuarioParams)
        {
            var usuarioActualId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value);

            var usuarioDelRepo = await _coderos.ObtenerUsuario(usuarioActualId);

            usuarioParams.UsuarioId = usuarioActualId;

            if (string.IsNullOrEmpty(usuarioParams.Genero))
            {
                usuarioParams.Genero = usuarioDelRepo.Genero == "masculino" ?  "Femenino" : "masculino";
            }

            var usuarios = await _coderos.ObtenerUsuarios(usuarioParams);

            var usuariosARetornar = _mapper.Map <IEnumerable <UsuarioListaDto> > (usuarios);

            Response.AgregarPaginacion(usuarios.PaginaActual, usuarios.TamanoPagina, usuarios.ConteoTotal,
                                       usuarios.PaginasTotales);

            return(Ok(usuariosARetornar));
        }
Exemple #7
0
        public async Task <PagedList <Usuario> > GetUsuarios(UsuarioParams usuarioParams)
        {
            var usuarios = _context.Usuarios.Include(x => x.Departamento);

            return(await PagedList <Usuario> .CreateAsync(usuarios, usuarioParams.PageNumber, usuarioParams.PageSize));
        }