public async Task <PagedList <VehicleMake> > ReadVehicleMakes(IReadVehicleMakesParams readParams) { var vehicleMakesEntitiesQuery = dbSet.AsQueryable(); var nameFilter = !string.IsNullOrWhiteSpace(readParams.Name) ? readParams.Name.Trim() : null; var abrvFilter = !string.IsNullOrWhiteSpace(readParams.Abrv) ? readParams.Abrv.Trim() : null; if (nameFilter != null) { vehicleMakesEntitiesQuery = vehicleMakesEntitiesQuery.Where(n => n.Name == nameFilter); } if (abrvFilter != null) { vehicleMakesEntitiesQuery = vehicleMakesEntitiesQuery.Where(n => n.Abrv == abrvFilter); } var orderBy = !string.IsNullOrWhiteSpace(readParams.OrderBy) ? readParams.OrderBy.Trim().ToLowerInvariant() : null; if (orderBy != null) { vehicleMakesEntitiesQuery = orderBy switch { string value when value == "name" || value == "name_desc" => value == "name_desc" ? vehicleMakesEntitiesQuery.OrderByDescending(s => s.Name) : vehicleMakesEntitiesQuery.OrderBy(s => s.Name), string value when value == "abrv" || value == "abrv_desc" => value == "abrv_desc" ? vehicleMakesEntitiesQuery.OrderByDescending(s => s.Abrv) : vehicleMakesEntitiesQuery.OrderBy(s => s.Abrv), _ => vehicleMakesEntitiesQuery.OrderBy(s => s.Name), }; } var pagedVehicleMakesEntities = await PagedList <VehicleMakeEntity> .CreateAsync(vehicleMakesEntitiesQuery, readParams.PageSize, readParams.PageNumber); var pagedVehicleMakes = pagedVehicleMakesEntities.ToMappedPagedList <VehicleMakeEntity, VehicleMake>(mapper); return(pagedVehicleMakes); }
public async Task <IPagedList <VehicleMake> > ReadVehicleMakes(IReadVehicleMakesParams readParams) { return(await repository.ReadVehicleMakes(readParams)); }