/// <summary> /// Adds the 'OrderBy' clause to the query. /// </summary> private static IQueryable <TEntity> AddOrderBy(IFWDataOptions queryOptions, IQueryable <TEntity> query) { if (queryOptions.SortInfo != null && queryOptions.SortInfo.Count > 0) { query = (queryOptions.SortInfo[0].SortDirection == FWSortDirection.Ascending) ? query.OrderBy(queryOptions.SortInfo[0].SortName) : query.OrderByDescending(queryOptions.SortInfo[0].SortName); if (queryOptions.SortInfo.Count > 1) { for (int i = 1; i < queryOptions.SortInfo.Count; i++) { query = (queryOptions.SortInfo[i].SortDirection == FWSortDirection.Ascending) ? query.ThenBy(queryOptions.SortInfo[i].SortName) : query.ThenByDescending(queryOptions.SortInfo[0].SortName); } } } else { query = query.OrderBy(f => f.Id); } return(query); }
private void Initialize(IFWDataOptions pagination) { Page = pagination.Page; Total = pagination.Total; Display = pagination.Display; SortInfo = pagination.SortInfo; }
/// <summary> /// Gets all records from the database paginated, projected into a different object. /// </summary> /// <typeparam name="TResult">The result type.</typeparam> /// <param name="selector">A projection funtion the be applied.</param> /// <param name="queryOptions">The data manipulation object reference</param> /// <returns>The list of entities found.</returns> public List <TResult> GetAll <TResult>(Expression <Func <TEntity, TResult> > selector, IFWDataOptions queryOptions) { IQueryable <TEntity> query = AddOrderBy(queryOptions, _dbSet); var result = query.Select(selector); queryOptions.Total = result.Count(); int skip = queryOptions.Display * (queryOptions.Page - 1); if (queryOptions.Page > 0) { return(result.Skip(skip).Take(queryOptions.Display).ToList()); } else { return(result.ToList()); } }
/// <summary> /// Initializes a new instance of the Framework.Model.FWGridList class. /// </summary> /// <param name="list"></param> /// <param name="pagination">The pagination object.</param> public FWGridList(IEnumerable <T> list, IFWDataOptions pagination) : base(list, pagination) { }
/// <summary> /// Initializes a new instance of the Framework.Model.FWGridList class. /// </summary> /// <param name="pagination">The pagination object.</param> public FWGridList(IFWDataOptions pagination) : base(pagination) { }
/// <summary> /// Initializes a new instance of the Framework.Model.FWList class. /// </summary> /// <param name="list"></param> /// <param name="pagination">The pagination object.</param> public FWDataList(IEnumerable <T> list, IFWDataOptions pagination) : base(list) { Initialize(pagination); }
/// <summary> /// Initializes a new instance of the Framework.Model.FWList class. /// </summary> /// <param name="pagination">The pagination object.</param> public FWDataList(IFWDataOptions pagination) { Initialize(pagination); }