public async Task <List <PB_Tray> > GetQueryData(TraySelectQueryDTO search) { var q = GetIQueryable(); var where = LinqHelper.True <PB_Tray>(); var listTypeId = new List <string>(); if (!search.MaterialId.IsNullOrEmpty()) { var query = Db.GetIQueryable <PB_TrayMaterial>(); var listType = await query.Where(w => w.MaterialId == search.MaterialId).Select(s => s.TrayTypeId).Distinct().ToListAsync(); listTypeId.AddRange(listType); } if (!search.LocationId.IsNullOrEmpty()) { var query = Db.GetIQueryable <PB_LocalTray>(); var listType = await query.Where(w => w.LocalId == search.LocationId).Select(s => s.TrayTypeId).Distinct().ToListAsync(); listTypeId.AddRange(listType); } if (listTypeId.Count > 0) { where = where.And(w => listTypeId.Contains(w.TrayTypeId)); } if (!search.Keyword.IsNullOrEmpty()) { where = where.And(w => w.Name.Contains(search.Keyword) || w.Code.Contains(search.Keyword)); } var result = await q.Where(where).OrderBy(o => o.Name).Take(search.Take).ToListAsync(); if (!search.Id.IsNullOrEmpty()) { var one = await this.GetIQueryable().Where(w => w.Id == search.Id).SingleOrDefaultAsync(); result.Add(one); } return(result); }
public async Task <List <PB_Tray> > GetQueryData(TraySelectQueryDTO search) { return(await _pB_TrayBus.GetQueryData(search)); }