public IPagedList <XiuJia> FindBy(KaoQinCondition condition, int pageNumber, int pageSize) { IQueryable <XiuJia> entities = Table; if (condition != null) { if (condition.UserId.NotNullOrBlank()) { entities = entities.Where(x => x.UserId == condition.UserId); } if (condition.DepartmentIds.OpSafe().Count > 0) { entities = entities.Where(x => condition.DepartmentIds.Contains(x.DepartmentId)); } if (condition.Statuses.OpSafe().Count > 0) { entities = entities.Where(x => condition.Statuses.Contains(x.Status)); } if (condition.CreatedStartTime.HasValue) { entities = entities.Where(x => x.Created >= condition.CreatedStartTime.Value); } if (condition.CreatedEndTime.HasValue) { entities = entities.Where(x => x.Created < condition.CreatedEndTime.Value); } if (condition.ExcludeUserId.NotNullOrBlank()) { entities = entities.Where(x => x.UserId != condition.ExcludeUserId); } if (condition.ExcludePositions.OpSafe().Count > 0) { entities = entities.Where(x => !condition.ExcludePositions.Contains(x.Position)); } } var totalCountQuery = entities.FutureCount(); var resultQuery = entities .OrderByDescending(x => x.Created) .ThenByDescending(x => x.Id) .Skip((pageNumber - 1) * pageSize) .Take(pageSize) .Future(); var totalCount = totalCountQuery.Value; var result = resultQuery.ToList(); return(new StaticPagedList <XiuJia>( result, pageNumber, pageSize, totalCount)); }
public static KaoQinConditionDTO ToDto(this KaoQinCondition model) { return(Mapper.Map <KaoQinConditionDTO>(model)); }