/// <summary> /// 获取分页数据列表 /// </summary> /// <param name="expression">查询条件</param> /// <param name="pageSize">每页条数</param> /// <param name="pageIndex">页码</param> /// <param name="orderColumn">排序字段</param> /// <param name="orderBy">排序方式</param> /// <param name="totalCount"></param> /// <returns></returns> public List <T> GetPageList <T>(Expression <Func <T, bool> > expression, int pageSize, int pageIndex, out int totalCount, string orderColumn, OrderBySort orderBySort = OrderBySort.Desc) where T : class { try { if (pageIndex < 1) { pageIndex = 1; } int skipCount = (pageIndex - 1) * pageSize; totalCount = _efCoreContext.Set <T>().Where <T>(expression).Count(); IQueryable <T> quary = _efCoreContext.Set <T>().AsNoTracking().AsQueryable().Where(expression); return(orderBySort == OrderBySort.Desc ? quary.OrderByDescending(orderColumn).Skip(skipCount).Take(pageSize).ToList() : quary.OrderBy(orderColumn).Skip(skipCount).Take(pageSize).ToList()); } catch (Exception ex) { totalCount = 0; return(null); } }
public static IEnumerable <DeviceTwinFlatModel> GetOrderedDevices(IEnumerable <DeviceTwinFlatModel> devices, string orderByField, OrderBySort orderBySort) { if (string.IsNullOrEmpty(orderByField)) { return(devices); } switch (orderBySort) { case OrderBySort.Ascending: if (InMemoryLambdaExpressionsHelper.FieldsStringLambdas.ContainsKey(orderByField)) { return(devices.OrderBy(InMemoryLambdaExpressionsHelper.FieldsStringLambdas[orderByField])); } else if (InMemoryLambdaExpressionsHelper.FieldsIntegerLambdas.ContainsKey(orderByField)) { return(devices.OrderBy(InMemoryLambdaExpressionsHelper.FieldsIntegerLambdas[orderByField])); } else if (InMemoryLambdaExpressionsHelper.FieldsDateLambdas.ContainsKey(orderByField)) { return(devices.OrderBy(InMemoryLambdaExpressionsHelper.FieldsDateLambdas[orderByField])); } else if (InMemoryLambdaExpressionsHelper.FieldsDoubleLambdas.ContainsKey(orderByField)) { return(devices.OrderBy(InMemoryLambdaExpressionsHelper.FieldsDoubleLambdas[orderByField])); } else if (InMemoryLambdaExpressionsHelper.FieldsBoolLambdas.ContainsKey(orderByField)) { return(devices.OrderBy(InMemoryLambdaExpressionsHelper.FieldsBoolLambdas[orderByField])); } else { return(devices); } case OrderBySort.Descending: if (InMemoryLambdaExpressionsHelper.FieldsStringLambdas.ContainsKey(orderByField)) { return(devices.OrderByDescending(InMemoryLambdaExpressionsHelper.FieldsStringLambdas[orderByField])); } else if (InMemoryLambdaExpressionsHelper.FieldsIntegerLambdas.ContainsKey(orderByField)) { return(devices.OrderByDescending(InMemoryLambdaExpressionsHelper.FieldsIntegerLambdas[orderByField])); } else if (InMemoryLambdaExpressionsHelper.FieldsDateLambdas.ContainsKey(orderByField)) { return(devices.OrderByDescending(InMemoryLambdaExpressionsHelper.FieldsDateLambdas[orderByField])); } else if (InMemoryLambdaExpressionsHelper.FieldsDoubleLambdas.ContainsKey(orderByField)) { return(devices.OrderByDescending(InMemoryLambdaExpressionsHelper.FieldsDoubleLambdas[orderByField])); } else if (InMemoryLambdaExpressionsHelper.FieldsBoolLambdas.ContainsKey(orderByField)) { return(devices.OrderByDescending(InMemoryLambdaExpressionsHelper.FieldsBoolLambdas[orderByField])); } else { return(devices); } } return(devices); }
/// <summary> /// 获取数据列表 /// </summary> /// <param name="orderColumn">排序字段</param> /// <param name="expression">查询条件</param> /// <param name="orderBy">排序方式</param> /// <returns></returns> public List <T> GetList <T>(string orderColumn, Expression <Func <T, bool> > expression = null, OrderBySort orderBySort = OrderBySort.Desc) where T : class { try { IQueryable <T> quary; if (expression != null) { quary = _efCoreContext.Set <T>().AsNoTracking().AsQueryable(); } else { quary = _efCoreContext.Set <T>().AsNoTracking().AsQueryable().Where(expression); } return(orderBySort == OrderBySort.Desc? quary.OrderByDescending(orderColumn).ToList() : quary.OrderBy(orderColumn).ToList()); } catch (Exception ex) { return(null); } }
public static IEnumerable <DeviceGroup> GetDevicesGroups(IEnumerable <DeviceTwinFlatModel> filteredQuery, string groupByField, OrderBySort sortBy) { IEnumerable <DeviceGroup> groups = null; if (InMemoryLambdaExpressionsHelper.FieldsStringLambdas.ContainsKey(groupByField)) { groups = filteredQuery.GroupBy(InMemoryLambdaExpressionsHelper.FieldsStringLambdas[groupByField]).Select(p => new DeviceGroup() { Name = p.Key, ItemsCount = p.Count(), ItemsIds = p.Select(x => x.DeviceId) }); } else if (InMemoryLambdaExpressionsHelper.FieldsIntegerLambdas.ContainsKey(groupByField)) { groups = filteredQuery.GroupBy(InMemoryLambdaExpressionsHelper.FieldsIntegerLambdas[groupByField]).Select(p => new DeviceGroup() { Name = p.Key.ToString(), ItemsCount = p.Count(), ItemsIds = p.Select(x => x.DeviceId) }); } else if (InMemoryLambdaExpressionsHelper.FieldsDateLambdas.ContainsKey(groupByField)) { groups = filteredQuery.GroupBy(InMemoryLambdaExpressionsHelper.FieldsDateLambdas[groupByField]).Select(p => new DeviceGroup() { Name = p.Key.ToShortDateString(), ItemsCount = p.Count(), ItemsIds = p.Select(x => x.DeviceId) }); } else if (InMemoryLambdaExpressionsHelper.FieldsDoubleLambdas.ContainsKey(groupByField)) { groups = filteredQuery.GroupBy(InMemoryLambdaExpressionsHelper.FieldsDoubleLambdas[groupByField]).Select(p => new DeviceGroup() { Name = p.Key.ToString(), ItemsCount = p.Count(), ItemsIds = p.Select(x => x.DeviceId) }); } else if (InMemoryLambdaExpressionsHelper.FieldsBoolLambdas.ContainsKey(groupByField)) { groups = filteredQuery.GroupBy(InMemoryLambdaExpressionsHelper.FieldsBoolLambdas[groupByField]).Select(p => new DeviceGroup() { Name = p.Key.ToString(), ItemsCount = p.Count(), ItemsIds = p.Select(x => x.DeviceId) }); } else { return(new List <DeviceGroup>()); } groups = sortBy == OrderBySort.Ascending ? groups.OrderBy(p => p.Name) : groups.OrderByDescending(p => p.Name); return(groups); }