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);
        }
Example #3
0
        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());
 }
Example #5
0
 public async Task <ActionResult> GetAutofillList(AutofillFilterModel filterModel)
 {
     return(Json(await _autofillService.GetAutofillList(filterModel), JsonRequestBehavior.AllowGet));
 }