public TListLogic <T> TLimit(int pageSize = 0, int page = 1) { while (true) { // take if (pageSize <= 0) { var listSize = TType.GetCustomAttribute <TListSize>(); if (listSize == null) { break; } pageSize = listSize.Key; if (pageSize <= 0) { break; } } m_take = pageSize; // skip page = page - 1; if (page <= 0) { break; } m_skip = page * pageSize; break; } return(this); }
public string GetTitle() { TEntity entity = TType.GetCustomAttribute <TEntity>(); string title = entity != null ? entity.Value : null; return(THelper.Lang(title, TType.Name)); }
public TListLogic <T> TOrder(string key = null, bool isAsc = true) { while (true) { TListOrder listOrder = null; if (!string.IsNullOrWhiteSpace(key)) { // input sort listOrder = new TListOrder(key, isAsc); } else { // config sort listOrder = TType.GetCustomAttribute <TListOrder>(); if (listOrder == null) { // DefaultKey sort listOrder = new TListOrder(PropertyHelper.DefaultKey, isAsc); } } // check key property PropertyInfo property = TType.GetProperty(listOrder.Key); if (property == null) { break; } ParameterExpression parameter = Expression.Parameter(TType); MemberExpression propertyAccess = Expression.MakeMemberAccess(parameter, property); LambdaExpression lambda = Expression.Lambda(propertyAccess, parameter); // pre_department.Name string order = listOrder.IsAsc ? "OrderBy" : "OrderByDescending"; m_query = Expression.Call( typeof(Queryable), order, new Type[] { TType, property.PropertyType }, m_query, lambda ); m_isOrder = true; break; } return(this); }