public IActionResult GetUsuarios([FromQuery] UsuarioQueryFilter filtros)
        {
            var usuarios     = _usuarioService.GetUsuarios(filtros);
            var usuariosDtos = _mapper.Map <IEnumerable <UsuarioDto> >(usuarios);

            var metaData = new MetaData
            {
                TotalCount      = usuarios.TotalCount,
                PageSize        = usuarios.PageSize,
                CurrentPage     = usuarios.CurrentPage,
                TotalPages      = usuarios.TotalPages,
                HasNextPage     = usuarios.HasNextPage,
                HasPreviousPage = usuarios.HasPreviousPage,
                NextPageUrl     = _uriService.GetUsuarioPaginationUri(filtros, Url.RouteUrl(nameof(GetUsuarios))).ToString(),
                PreviousPageUrl = _uriService.GetUsuarioPaginationUri(filtros, Url.RouteUrl(nameof(GetUsuarios))).ToString(),
            };

            var response = new ApiResponse <IEnumerable <UsuarioDto> >(usuariosDtos)
            {
                Meta = metaData
            };

            Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(metaData));
            return(Ok(response));
        }
        public PagedList <Usuario> GetUsuarios(UsuarioQueryFilter filtros)
        {
            filtros.PageNumber = filtros.PageNumber == 0 ? _paginationOptions.DefaultPageNumber : filtros.PageNumber;
            filtros.PageSize   = filtros.PageSize == 0 ? _paginationOptions.DefaultPageSize : filtros.PageSize;

            var usuarios = _unitOfWork.UsuarioRepository.GetAll();

            if (filtros.Rut != null)
            {
                usuarios = usuarios.Where(x => x.Rut == filtros.Rut);
            }

            if (filtros.Nombre != null)
            {
                usuarios = usuarios.Where(x => x.Nombre.ToLower().Contains(filtros.Nombre.ToLower()));
            }

            if (filtros.ApellidoPaterno != null)
            {
                usuarios = usuarios.Where(x => x.ApellidoPaterno.ToLower().Contains(filtros.ApellidoPaterno.ToLower()));
            }

            if (filtros.EsActivo != null)
            {
                usuarios = usuarios.Where(x => x.EsActivo == filtros.EsActivo);
            }

            var pagedList = PagedList <Usuario> .Create(usuarios, filtros.PageNumber, filtros.PageSize);

            return(pagedList);
        }
Beispiel #3
0
        public async Task <PagedList <Usuario> > GetUsuarios(UsuarioQueryFilter filters, ResourceLocation resourceLocation)
        {
            var usuarios = await _unitOfWork.UsuarioRepository.GetAll();

            usuarios = filters.Nombre != null?usuarios.Where(x => x.Nombre.ToLower() == filters.Nombre.ToLower()) : usuarios;

            usuarios = filters.Apellidos != null?usuarios.Where(x => x.Apellidos.ToLower() == filters.Apellidos.ToLower()) : usuarios;

            usuarios = filters.Email != null?usuarios.Where(x => x.Email.Contains(filters.Email.ToLower())) : usuarios;

            usuarios = filters.Creacion != null?usuarios.Where(x => x.Creacion == filters.Creacion) : usuarios;

            return(_pagedGenerator.GeneratePagedList(GetItemsOrdered(usuarios, resourceLocation), filters));
        }
        public async Task <PageList <Usuario> > GetAll(UsuarioQueryFilter filters)
        {
            var usuarios = await _unitOfWork.UsuarioRepository.GetAll();

            if (filters.UserName != null)
            {
                usuarios = usuarios.Where(x => x.UserName.ToLower().Contains(filters.UserName.ToLower()));
            }

            if (filters.Rol != null)
            {
                usuarios = usuarios.Where(x => x.Rol == filters.Rol);
            }

            var pageTerceros = PageList <Usuario> .Create(usuarios, filters.PageNumber, filters.PageSize);

            return(pageTerceros);
        }
        public async Task <ActionResult <IEnumerable <UsuarioDTO> > > Get([FromQuery] UsuarioQueryFilter filters)
        {
            var location = new ResourceLocation()
            {
                Scheme = Request.Scheme, Host = Request.Host.Value, PathBase = Request.PathBase
            };
            var usuarios = await _usuarioService.GetUsuarios(filters, location);

            var usuariosDTO = _mapper.Map <IEnumerable <UsuarioDTO> >(usuarios);
            var metadata    = new MetaData().BuildMeta <Usuario>(usuarios, filters, Request.Path.Value, _uriService);
            var response    = new ApiResponse <IEnumerable <UsuarioDTO> >(usuariosDTO)
            {
                Meta = metadata
            };

            Request.Headers.Add("X-Pagination", JsonConvert.SerializeObject(metadata));
            return(Ok(response));
        }
        public async Task <IActionResult> GetAll([FromQuery] UsuarioQueryFilter filters)
        {
            var usuarios = await _service.GetAll(filters);

            var usuariosDto = _mapper.Map <IEnumerable <UsuarioDto> >(usuarios);
            var respose     = new ApiResponse <IEnumerable <UsuarioDto> >(usuariosDto);
            var matadata    = new
            {
                usuarios.TotalCount,
                usuarios.PageSize,
                usuarios.CurrentPage,
                usuarios.TotlaPages,
                usuarios.HasNextPage,
                usuarios.HasPreviousPage
            };

            Response.Headers.Add("X-Pagination", JsonSerializer.Serialize(matadata));
            return(Ok(respose));
        }
Beispiel #7
0
        public Uri GetUsuarioPaginationUri(UsuarioQueryFilter filter, string actionUrl)
        {
            string url = $"{_baseUri}{actionUrl}";

            return(new Uri(url));
        }