Exemple #1
0
        /// <summary>
        /// 静态构造对象
        /// </summary>
        /// <param name="field"></param>
        /// <param name="orderBy"></param>
        /// <returns></returns>
        public static OrderByField Create <TEntity>(string field, FieldSortType orderBy = FieldSortType.Asc)
        {
            string fieldNew = field;
            Type   t        = typeof(TEntity);

            foreach (PropertyInfo p in t.GetProperties())
            {
                if (p.Name == field)
                {
                    fieldNew = GetFieldName(p);
                    break;
                }
            }

            return(new OrderByField(fieldNew, orderBy));
        }
Exemple #2
0
        public static SearchDTO <T> DeserializeObject <T>(this SearchDTO search) where T : IDataTransferObject
        {
            T          dTO        = JsonConvert.DeserializeObject <T>(search.QueryJson);
            Pagination pagination = JsonConvert.DeserializeObject <Pagination>(search.Pagination);

            string              orderField    = pagination.Sidx;
            FieldSortType       sord          = (string.IsNullOrWhiteSpace(pagination.Sord) || pagination.Sord.Trim().ToLower() == "asc") ? FieldSortType.Asc : FieldSortType.Desc;
            List <OrderByField> orderByFields = new List <OrderByField>();

            string[] orders = orderField.Split(',');

            foreach (string order in orders)
            {
                string orderPart = order;
                orderPart = Regex.Replace(orderPart, @"\s+", " ");
                string[]      orderArry = orderPart.Split(' ');
                string        orField   = orderArry[0];
                FieldSortType isAsc;
                if (orderArry.Length == 2)
                {
                    isAsc = orderArry[1].ToUpper() == "ASC" ? FieldSortType.Asc : FieldSortType.Desc;
                }
                else
                {
                    isAsc = sord;
                }
                orderByFields.Add(new OrderByField(orField, isAsc));
            }

            dTO.Order = orderByFields.ToArray();

            var result = new SearchDTO <T>
            {
                PageIndex = pagination.Page,
                PageSize  = pagination.Rows,
                Data      = dTO
            };

            return(result);
        }
Exemple #3
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="field"></param>
 /// <param name="orderBy"></param>
 public OrderByField(string field, FieldSortType orderBy = FieldSortType.Asc)
 {
     Field   = field;
     OrderBy = orderBy;
 }
Exemple #4
0
 /// <summary>
 /// 静态构造对象
 /// </summary>
 /// <param name="field"></param>
 /// <param name="orderBy"></param>
 /// <returns></returns>
 public static OrderByField Create(string field, FieldSortType orderBy = FieldSortType.Asc)
 {
     return(new OrderByField(field, orderBy));
 }