public async Task <ICollection <Autofill> > Get(AutofillFilterModel filterModel) { var query = CreateQuery(filterModel); query = query.OrderBy(filterModel.Sorting.FieldName + " " + filterModel.Sorting.Direction); query = query.Skip((filterModel.CorrectPageNumber - 1) * filterModel.CorrectPageSize).Take(filterModel.CorrectPageSize); return(await query.ToListAsync()); }
private IQueryable <Autofill> CreateQuery(AutofillFilterModel filterModel) { if (string.IsNullOrWhiteSpace(filterModel.SearchText)) { return(_context.Autofills); } var filterParams = filterModel.ParseText(filterModel.SearchText); var goodTypes = Extensions.ToEnumList <WorkItemType>().ToDictionary(x => x, x => x.GetDescription()).Where(x => filterParams.Any(p => x.Value.IndexOf(p, StringComparison.OrdinalIgnoreCase) >= 0)).Select(x => x.Key).ToArray(); string firstElement = filterParams[0]; IQueryable <Autofill> query = _context.Autofills.Where(x => x.Name.Contains(firstElement) || x.Description.Contains(firstElement) || goodTypes.Contains(x.WorkItemType)); for (var i = 1; i < filterParams.Length; i++) { var param = filterParams[i]; query = query.Union(_context.Autofills.Where(x => x.Name.Contains(param) || x.Description.Contains(param))); } return(query); }
public async Task <TableCollectionModel <AutofillViewModel> > GetAutofillList(AutofillFilterModel filterModel) { var model = new TableCollectionModel <AutofillViewModel> { Collection = (await _repository.Get(filterModel)).Select(x => new AutofillViewModel(x)).ToList(), TotalCount = await _repository.GetTotalCount(filterModel) }; return(model); }
public async Task <int> GetTotalCount(AutofillFilterModel filterModel) { return(await CreateQuery(filterModel).CountAsync()); }
public async Task <ActionResult> GetAutofillList(AutofillFilterModel filterModel) { return(Json(await _autofillService.GetAutofillList(filterModel), JsonRequestBehavior.AllowGet)); }