示例#1
0
        /// <summary>
        /// Método para especificar los valores de paginación.
        /// </summary>
        /// <param name="paginationCatalog"> Contiene la especificación de los parametros de paginación </param>
        /// <returns> Especificación de paginación. </returns>
        private PaginateSpecification SetPagination(PaginationCatalog paginationCatalog)
        {
            _validatorPaginates.Validate(paginationCatalog);
            PaginateSpecification paginableSpecification = new PaginateSpecification(paginationCatalog.page, paginationCatalog.pageSize);

            return(paginableSpecification);
        }
示例#2
0
        /// <summary>
        /// Método para asignar criterios de fitros y criterios de paginación.
        /// </summary>
        /// <param name="paginationCatalog">Especificación de paginación.</param>
        /// <param name="criteriaExpression">Especificación de filtros para la expresión de búsqueda.</param>
        /// <returns>Especificación de búsqueda.</returns>
        private QuerySpecification <TEntity> GetQuerySpecification(PaginationCatalog paginationCatalog, Expression <Func <TEntity, bool> > criteriaExpression)
        {
            QuerySpecification <TEntity> spec = new QuerySpecification <TEntity>(criteriaExpression);

            spec.Paginate(SetPagination(paginationCatalog));

            return(spec);
        }
示例#3
0
 /// <summary>
 /// Constructor para instanciar la clase.
 /// </summary>
 /// <param name="result">Resultado de la consulta realizada.</param>
 /// <param name="pagination">Paginación.</param>
 protected PagedResponse(IEnumerable <TResult> result, IPagination pagination, PaginationCatalog paginationCatalog)
 {
     Result            = result;
     Pagination        = pagination;
     PaginationCatalog = paginationCatalog;
 }
示例#4
0
        /// <summary>
        /// Agrega la paginación.
        /// </summary>
        /// <param name="response">Respuesta Http.</param>
        /// <param name="Pagination">Paginación de la consulta realizada</param>
        /// <param name="paginationCatalog"> Especificación de la paginación.</param>
        public static void AddPagination(this HttpResponse response, IPagination Pagination, PaginationCatalog paginationCatalog)
        {
            var paginationHeader = new
            {
                Pagination.TotalRows,
                Pagination.TotalPage,
                PageSize   = paginationCatalog.pageSize,
                CurrenPage = paginationCatalog.page,
            };

            response.Headers.Add("egobx-pagination", JsonConvert.SerializeObject(paginationHeader));
            response.Headers.Add("Access-Control-Expose-Headers", "egobx-pagination");
        }
示例#5
0
 /// <summary>
 /// Constructor para instanciar la clase.
 /// </summary>
 /// <param name="result">Resultado.</param>
 /// <param name="pagination">Paginación de la consulta realizada.</param>
 public GetResponse(IEnumerable <TEntity> result, IPagination pagination, PaginationCatalog paginationCatalog) : base(result, pagination, paginationCatalog)
 {
 }