public async Task <IPagedList <IVehicleMake> > GetAllAsync( IFilteringParams filteringParams, IPagingParams pagingParams, ISortingParams sortingParams) { IQueryable <VehicleMake> makeList = await _repository.GetAllAsync <VehicleMake>(); // Filtering if (!String.IsNullOrEmpty(filteringParams.SearchString)) { makeList = makeList.Where(x => x.Name.ToLower().Contains(filteringParams.SearchString.ToLower())); } // Sorting switch (sortingParams.Sorting) { case "name_desc": makeList = makeList.OrderByDescending(x => x.Name); break; case "id": makeList = makeList.OrderBy(x => x.Id); break; case "id_desc": makeList = makeList.OrderByDescending(x => x.Id); break; case "abrv": makeList = makeList.OrderBy(x => x.Abrv); break; case "abrv_desc": makeList = makeList.OrderByDescending(x => x.Abrv); break; default: makeList = makeList.OrderBy(x => x.Name); break; } var pagedList = makeList.ToPagedList(pagingParams.PageNumber, pagingParams.PageSize); if (pagedList.PageCount < pagedList.PageNumber) { makeList.ToPagedList(1, pagingParams.PageSize); } return(pagedList); }
public async Task <IPagedList <IVehicleMake> > FindMakeAsync(IFilteringParams filter, ISortingParams sorter, IPagingParams pager) { return(await unitOfWork.Makers.FindMakeAsync(filter, sorter, pager)); }
public SortingFactory(ISortingParams sortingParams) { _sortingParams = sortingParams ?? throw new ArgumentNullException(nameof(ISortingParams)); }
public async Task <IPagedList <IVehicleMake> > FindMakeAsync(IFilteringParams filter, ISortingParams sorter, IPagingParams pager) { var makers = await context.Makers .Where(m => string.IsNullOrEmpty(filter.Search)?m != null : m.Name.ToLower().Contains(filter.Search.ToLower())) .OrderByDescending(x => sorter.SortDirection == "dsc" ? x.Name : "") .OrderBy(x => string.IsNullOrEmpty(sorter.SortDirection) || sorter.SortDirection == "asc" ? x.Name : "") .ToListAsync(); return(await mapper.Map <IEnumerable <IVehicleMake> >(makers).ToPagedListAsync(pager.CurrentPage, pager.PageSize)); }