Ejemplo n.º 1
0
        public async Task <IActionResult> GetAllUnassigned([FromQuery] BaseQueryFilter filters)
        {
            var unassignedUnits = await _unitService.GetUnassignedUnits(filters);

            var unassignedUnitsDto = _mapper.Map <IEnumerable <UnassignedUnitsDto> >(unassignedUnits);

            var metadata = new Metadata
            {
                TotalCount      = unassignedUnits.TotalCount,
                PageSize        = unassignedUnits.PageSize,
                CurrentPage     = unassignedUnits.CurrentPage,
                TotalPages      = unassignedUnits.TotalPages,
                HasNextPage     = unassignedUnits.HasNextPage,
                HasPreviousPage = unassignedUnits.HasPreviousPage,
                NextPageUrl     = _uriService.GetPaginationUri(Url.RouteUrl(nameof(GetAllUnassigned))).ToString(),
                PreviousPageUrl = _uriService.GetPaginationUri(Url.RouteUrl(nameof(GetAllUnassigned))).ToString()
            };

            var response = new ApiResponse <IEnumerable <UnassignedUnitsDto> >(unassignedUnitsDto)
            {
                Meta = metadata
            };

            return(Ok(response));
        }
 /// <summary>Disables the filter on the associated query.</summary>
 /// <param name="filter">The filter to disable on the associated query.</param>
 public void DisableFilter(BaseQueryFilter filter)
 {
     if (Filters.Remove(filter))
     {
         UpdateInternalQuery();
     }
 }
 /// <summary>Enables the filter on the associated query.</summary>
 /// <param name="filter">The filter to enable on the associated query.</param>
 public void EnableFilter(BaseQueryFilter filter)
 {
     if (!Filters.Contains(filter))
     {
         Filters.Add(filter);
         UpdateInternalQuery();
     }
 }
Ejemplo n.º 4
0
 public string GetPaginationPreviousUrl(BaseQueryFilter filter, HttpRequest request, bool hasPreviousPage)
 {
     if (hasPreviousPage)
     {
         modifiedUri = GetCustomUrl(filter, request, false);
         return(modifiedUri);
     }
     return(null);
 }
Ejemplo n.º 5
0
 public string GetPaginationNextUrl(BaseQueryFilter filter, HttpRequest request, bool hasNextPage)
 {
     if (hasNextPage)
     {
         modifiedUri = GetCustomUrl(filter, request, true);
         return(modifiedUri);
     }
     return(null);
 }
Ejemplo n.º 6
0
        public async Task <PagedList <Unit> > GetUnassignedUnits(BaseQueryFilter filters)
        {
            filters.PageNumber = filters.PageNumber == 0 ? _paginationOptions.DefaultPageNumber : filters.PageNumber;
            filters.PageSize   = filters.PageSize == 0 ? _paginationOptions.DefaultPageSize : filters.PageSize;

            var unassignedUnits = await _unitOfWork.UnitRepository.GetUnassignedUnits();

            var pagedUnassignedUnits = PagedList <Unit> .Create(unassignedUnits, filters.PageNumber, filters.PageSize);

            return(pagedUnassignedUnits);
        }
Ejemplo n.º 7
0
        //retorna la lista paginada.  //skip=omitir, take=tomar
        public IList <T> GetPagedList(IList <T> list, BaseQueryFilter filter = null)
        {
            if (filter.ItemByPage == null)
            {
                filter.ItemByPage = appsetting.ItemByPage;
            }
            if (filter.CurrentPage == null)
            {
                filter.CurrentPage = appsetting.CurrentPage;
            }

            return(list.Skip(((filter.CurrentPage - 1) * filter.ItemByPage).Value).Take(filter.ItemByPage.Value).ToList());
        }
Ejemplo n.º 8
0
        //this is a dynamic function to create a custom url
        private string GetCustomUrl(BaseQueryFilter filter, HttpRequest request, bool addOnePageItem)
        {
            var baseRouteUrl = $"{ _baseUrl}{ request.Path.Value}";
            var modifiedUri  = baseRouteUrl;

            if (addOnePageItem)
            {
                modifiedUri = QueryHelpers.AddQueryString(modifiedUri, nameof(filter.PageNumber), (filter.PageNumber + 1).ToString());
            }
            modifiedUri = QueryHelpers.AddQueryString(modifiedUri, nameof(filter.PageNumber), (filter.PageNumber - 1).ToString());
            modifiedUri = QueryHelpers.AddQueryString(modifiedUri, nameof(filter.PageSize), (filter.PageSize).ToString());
            foreach (var item in request.Query)
            {
                //Jump if it has page number or page size from query
                if (item.Key == nameof(filter.PageNumber) || item.Key == nameof(filter.PageSize))
                {
                    continue;
                }

                modifiedUri = QueryHelpers.AddQueryString(modifiedUri, item.Key, item.Value);
            }
            return(modifiedUri);
        }
Ejemplo n.º 9
0
        internal ResponseApi <List <TDTO> > GetPagedList(IEnumerable <TEntity> lista, BaseQueryFilter filter = null)
        {
            var list = lista.ToList();

            //aplicamos logica de negocio
            if (list.Count() == 0)
            {
                throw new CustomException($"No se encontro resultado", HttpStatusCode.NotFound);
            }
            //aplicamos navegacion de la lista
            // var navegation =  _pagination.GetNavegation(list, filter);
            //aplicamos paginado
            var pagedList = _pagination.GetPagedList(list, filter);
            //mapeamos la lista paginada a un DTOs
            var dTOs = _mapper.Map <List <TDTO> >(pagedList);

            //retornamos nuestra repuesta personalizada.
            return(new ResponseApi <List <TDTO> >(dTOs));
        }
Ejemplo n.º 10
0
 private void Push(BaseQueryFilter queryFilter)
 {
     _stack.Push(queryFilter);
 }