Beispiel #1
0
        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));
        }
Beispiel #3
0
        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);
        }