/// <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)); }
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); }
/// <summary> /// 构造函数 /// </summary> /// <param name="field"></param> /// <param name="orderBy"></param> public OrderByField(string field, FieldSortType orderBy = FieldSortType.Asc) { Field = field; OrderBy = orderBy; }
/// <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)); }