| 123456789101112131415161718192021222324252627282930313233 |
- using System.Linq.Expressions;
- using BlackRock.Reporting.API.Mediator;
- using BlackRock.Reporting.API.Mediator.Model;
-
- namespace BlackRock.Reporting.API.Extensions
- {
- public static class IQueryableExtensions
- {
- public static IQueryable<T> ApplyOrdering<T>(this IQueryable<T> query,
- IPaggingAndFiltering queryObj, Dictionary<string, Expression<Func<T, object>>> columnsMap)
- {
- if (string.IsNullOrWhiteSpace(queryObj.SortBy) ||
- !columnsMap.ContainsKey(queryObj.SortBy))
- return query;
- if (queryObj.IsSortAscending)
- return query.OrderBy(columnsMap[queryObj.SortBy]);
-
- return query.OrderByDescending(columnsMap[queryObj.SortBy]);
- }
- public static IQueryable<T> ApplyPagging<T>(this IQueryable<T> query,
- IPaggingAndFiltering queryObj)
- {
- if (queryObj.Page <= 0)
- queryObj.Page = 1;
-
- if (queryObj.PageSize <= 0)
- queryObj.PageSize = 10;
-
- return query.Skip((queryObj.Page - 1) * queryObj.PageSize)
- .Take(queryObj.PageSize);
- }
- }
- }
|