Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 public async Task <List <PB_Tray> > GetQueryData(TraySelectQueryDTO search)
 {
     return(await _pB_TrayBus.GetQueryData(search));
 }