/// <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); }
/// <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); }
/// <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; }
/// <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"); }
/// <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) { }