Beispiel #1
0
        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));
 }
Beispiel #3
0
 public SortingFactory(ISortingParams sortingParams)
 {
     _sortingParams = sortingParams ?? throw new ArgumentNullException(nameof(ISortingParams));
 }
Beispiel #4
0
        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));
        }