Exemplo n.º 1
0
        /// <summary>
        /// 获取筛选 Queryable
        /// </summary>
        /// <param name="filter"></param>
        /// <returns></returns>
        public virtual IQueryable <TEntity> QueryableFilterEntities(Dictionary <string, string> filter = null, bool isDelete = false)
        {
            var query = Entities(isDelete);

            if (filter != null)
            {
                var tmpExpression = LambdaHelper.True <TEntity>();
                foreach (var keyValue in filter)
                {
                    tmpExpression = tmpExpression.And <TEntity>(LambdaHelper.GetContains <TEntity>(keyValue.Key, keyValue.Value));
                }
                query = query.Where(tmpExpression);
            }
            return(query);
        }
Exemplo n.º 2
0
        public PagedResultDto <ReagentInfoDto> GetReagentInfosPage(GetReagentInfosInput input)
        {
            //帅选
            var where = LambdaHelper.True <TB_ReagentInfo>();
            if (input.Filters != null && input.Filters.Count > 0)
            {
                foreach (var item in input.Filters)
                {
                    if (item.ColumName == "ReagentName")
                    {
                        item.ColumValue = item.ColumValue.ToUpper();
                    }
                    where = where.And(LambdaHelper.GetContains <TB_ReagentInfo>(item.ColumName, item.ColumValue));
                }
            }
            var query = repository.GetAll().Where(where);

            //排序
            if (!string.IsNullOrEmpty(input.Sorting))
            {
                if (input.Sorting.Contains("-"))
                {
                    var sort = input.Sorting.Split("-");
                    query = sort[1] == "desc" ? query.OrderByDescending(sort[0]) : query.OrderBy(sort[0]);
                }
                else
                {
                    query = query.OrderBy(input.Sorting);
                }
            }
            else
            {
                query = query.OrderBy(t => t.ID);
            }
            //query = !string.IsNullOrEmpty(input.Sorting) ? query.OrderBy(input.Sorting) : query.OrderBy(t => t.ID);
            //获取总数
            var totalCount = query.Include(a => a.ID).Count();
            //默认的分页方式
            //var reagentList = query.Skip(input.SkipCount).Take(input.MaxResultCount).ToList();

            //ABP提供了扩展方法PageBy分页方式
            var reagentList = query.PageBy(input).ToList();
            var result      = new PagedResultDto <ReagentInfoDto>(totalCount, ObjectMapper.Map <List <ReagentInfoDto> >(reagentList));

            return(result);
        }