public async Task <DispositionPurchaseIndexDto> GetAll(string keyword, int page, int size, string filter, string order) { IQueryable <GarmentDispositionPurchase> Query = dbSet; if (!string.IsNullOrWhiteSpace(identityService.Username)) { Query = Query.Where(x => x.CreatedBy == identityService.Username); } Query = Query .AsNoTracking() .Include(p => p.GarmentDispositionPurchaseItems) .ThenInclude(p => p.GarmentDispositionPurchaseDetails) //.Where(s=> s.Position == PurchasingGarmentExpeditionPosition.Purchasing) .AsQueryable(); if (keyword != null) { Query = Query.Where(s => s.DispositionNo.Contains(keyword) || s.SupplierName.Contains(keyword)); } //var countData = dataModel.Count(); //var dataList = await dataModel.ToListAsync(); //var Query = dataModel; List <string> searchAttributes = new List <string>() { "DispositionNo" }; Query = QueryHelper <GarmentDispositionPurchase> .ConfigureSearch(Query, searchAttributes, keyword); Dictionary <string, string> FilterDictionary = JsonConvert.DeserializeObject <Dictionary <string, string> >(filter); //override by user //FilterDictionary.Add("CreatedBy", identityService.Username); Query = QueryHelper <GarmentDispositionPurchase> .ConfigureFilter(Query, FilterDictionary); Dictionary <string, string> OrderDictionary = JsonConvert.DeserializeObject <Dictionary <string, string> >(order); Query = QueryHelper <GarmentDispositionPurchase> .ConfigureOrder(Query, OrderDictionary); Pageable <GarmentDispositionPurchase> pageable = new Pageable <GarmentDispositionPurchase>(Query, page - 1, size); List <GarmentDispositionPurchase> Data = pageable.Data.ToList(); int TotalData = pageable.TotalCount; var model = mapper.Map <List <GarmentDispositionPurchase>, List <DispositionPurchaseTableDto> >(Data.ToList()); var indexModel = new DispositionPurchaseIndexDto(model, page, TotalData); return(indexModel); }
public async Task <DispositionPurchaseIndexDto> GetAll(string keyword, int page, int size) { var dataModel = dbSet .AsNoTracking() .Include(p => p.GarmentDispositionPurchaseItems) .ThenInclude(p => p.GarmentDispositionPurchaseDetails).AsQueryable(); if (keyword != null) { dataModel = dataModel.Where(s => s.DispositionNo.Contains(keyword) || s.SupplierName.Contains(keyword)); } var countData = dataModel.Count(); var dataList = await dataModel.ToListAsync(); var model = mapper.Map <List <GarmentDispositionPurchase>, List <DispositionPurchaseTableDto> >(dataList); var indexModel = new DispositionPurchaseIndexDto(model, page, countData); return(indexModel); }