示例#1
0
        private IQueryable <BD_Standard> CreateStandardsQuery(GetStandardsInput input)
        {
            var query = _standardRepository.GetAll()
                        .Include(s => s.Installation)
                        .Where(s => s.ValidateDate >= input.ValidateDate && s.StrType == input.StrType);

            query = query
                    .WhereIf(input.Installation_ID > 0, item => item.Installation_ID == input.Installation_ID)           //所属计量装置ID -->精确查询
                    .WhereIf(!input.FactoryNum.IsNullOrWhiteSpace(), item => item.FactoryNum.Contains(input.FactoryNum)) //出厂编号 -->模糊查询
                    .WhereIf(!input.StrName.IsNullOrWhiteSpace(), item => item.StrName.Contains(input.StrName))          //标准器名称
                    .WhereIf(!input.StrSpec.IsNullOrWhiteSpace(), item => item.StrSpec.Contains(input.StrSpec));         //标准器型号

            return(query);
        }
示例#2
0
        /// <summary>
        /// 过滤,排序,分页 获取标准器列表
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task <PagedResultDto <StandardListDto> > GetStandards(GetStandardsInput input)
        {
            var query = CreateStandardsQuery(input);    //Step 01

            var resultCount = await query.CountAsync(); //Step 02

            var results = await query
                          .AsNoTracking()
                          .OrderBy(input.Sorting) /*Exp: using System.Linq.Dynamic;*/
                          .PageBy(input)
                          .ToListAsync();

            var standardListDtos = results.MapTo <List <StandardListDto> >();            //Step 03

            return(new PagedResultDto <StandardListDto>(resultCount, standardListDtos)); //Step 04
        }