Пример #1
0
        private IQueryable <InTstListDto> CreateInTstsQuery(GetInstrumentTestsInput input)
        {
            var reInstruments = _receiveInstrumentRepository.GetAllIncluding(q => q.Instrument);
            var inTsts        = _instrumentTestRepository.GetAll().Include(q => q.ReceiveInstrument).Include(q => q.User);

            var query = from re in reInstruments
                        join inTst in inTsts
                        on re.Id equals inTst.ReceiveInstrument_ID
                        select new InTstListDto
            {
                Id             = inTst.Id,
                InstrumentName = re.Instrument.Name,
                Number         = inTst.Number,
                CheckType      = inTst.CheckType.CheckName,
                CheckTypeId    = inTst.CheckType.Id,
                CaliValidate   = inTst.CaliValidate,
                IntHandover    = inTst.IntHandover,
                User           = inTst.UserId == null ? "暂无" : inTst.User.UserName,
                UserId         = inTst.UserId,
                Calibration    = inTst.Calibration,
                CaliU          = inTst.CaliU,
                Address        = inTst.Address,
                StrFlag        = inTst.StrFlag,
                CreationTime   = inTst.CreationTime
            };

            query = query                                                                                        //--查询过滤 Begin
                    .Where(q => q.IntHandover == input.IntHandover)                                              //是否交接?
                    .WhereIf(input.CheckTypeId > 0, item => item.CheckTypeId == input.CheckTypeId)               //检测类型
                    .WhereIf(input.UserId > 0, item => item.UserId == input.UserId)                              //接收用户
                    .WhereIf(!input.Number.IsNullOrWhiteSpace(), item => item.Number.Contains(input.Number))     //仪器编号
                    .WhereIf(!input.Address.IsNullOrWhiteSpace(), item => item.Address.Contains(input.Address)); //实验地址

            return(query);
        }
Пример #2
0
        //5.2 获取已经登记的仪器列表 用于交接挑选,带分页
        public async Task <PagedResultDto <InTstListDto> > GetInstrumentTestsForHandOver(GetInstrumentTestsInput input)
        {
            var query = CreateInTstsQuery(input);       //Step 01

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

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

            return(new PagedResultDto <InTstListDto>(resultCount, inTstListDtos));  //Step 03
        }