Пример #1
0
        public PagedList <Perfil> GetPerfils(PerfilQueryFilter filtros)
        {
            filtros.PageNumber = filtros.PageNumber == 0 ? _paginationOptions.DefaultPageNumber : filtros.PageNumber;
            filtros.PageSize   = filtros.PageSize == 0 ? _paginationOptions.DefaultPageSize : filtros.PageSize;

            var perfiles = _unitOfWork.PerfilRepository.GetAll();

            if (filtros.IdPerfil != null)
            {
                perfiles = perfiles.Where(x => x.Id == filtros.IdPerfil);
            }

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

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

            var pagedPerfiles = PagedList <Perfil> .Create(perfiles, filtros.PageNumber, filtros.PageSize);

            return(pagedPerfiles);
        }
        public IActionResult GetPerfils([FromQuery] PerfilQueryFilter filtros)
        {
            var perfiles     = _perfilService.GetPerfils(filtros);
            var perfilesDtos = _mapper.Map <IEnumerable <PerfilDto> >(perfiles);

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

            var response = new ApiResponse <IEnumerable <PerfilDto> >(perfilesDtos)
            {
                Meta = metaData
            };

            Response.Headers.Add("x-Pagination", JsonConvert.SerializeObject(metaData));
            return(Ok(response));
        }
Пример #3
0
        public Uri GetPerfilPaginationUri(PerfilQueryFilter filter, string actionUrl)
        {
            string url = $"{_baseUri}{actionUrl}";

            return(new Uri(url));
        }