/// <summary> /// Asynchronously gets a range of counties, sorted according to the sorting options provided. An optional filter can also be applied. /// </summary> /// <param name="filter">Instance of type <see cref="IFilter"/>.</param> /// <param name="paging">An instance of type <see cref="IPagingParameters"/>, holds paging data.</param> /// <param name="sorting">Sorting options</param> /// <returns>Returns <see cref="Task{IPagedList{ICounty}}"/>.</returns> /// <exception cref="ArgumentNullException">Thrown if <paramref name="paging"/> is null.</exception> public Task<IPagedList<ICounty>> GetAsync(IPagingParameters paging, ISortingParameters sorting, IFilter filter) { if (paging == null) { throw new ArgumentNullException("paging"); } return repository.GetAsync(paging, sorting, filter); }
/// <summary> /// Gets all or filtered vehicleModels. /// </summary> /// <param name="filter"></param> /// <returns>StaticPagedList if filter != null, if filter == null returns list of all VehicleModel.</returns> public virtual async Task<IEnumerable<IVehicleModel>> GetAsync(IPagingParameters pagingParameters, ISortingParameters sortingParameters, IFilter filter) { var db = ApplicationDbContext.Create(); var vehicleModels = from s in db.VehicleModels select s; string sortExpression = sortingParameters.Sorters.First().GetSortExpression(); switch (sortExpression) { case "name_asc": vehicleModels = vehicleModels.OrderBy(s => s.Name); break; case "name_dsc": vehicleModels = vehicleModels.OrderByDescending(s => s.Name); break; case "abrv_asc": vehicleModels = vehicleModels.OrderBy(s => s.Abrv); break; case "abrv_dsc": vehicleModels = vehicleModels.OrderByDescending(s => s.Abrv); break; case "vehicleMake_asc": vehicleModels = vehicleModels.OrderBy(s => s.VehicleMake.Name); break; case "vehicleMake_dsc": vehicleModels = vehicleModels.OrderByDescending(s => s.VehicleMake.Name); break; default : vehicleModels = vehicleModels.OrderBy(s => s.Name); break; } if (!string.IsNullOrWhiteSpace(filter.SearchString)) { vehicleModels = vehicleModels.Where(s => s.Name.ToUpper() .Contains(filter.SearchString.ToUpper()) || s.Abrv.ToUpper() .Contains(filter.SearchString.ToUpper()) || s.VehicleMake.Name.ToUpper() .Contains(filter.SearchString.ToUpper())); } if (pagingParameters == null) { var list = vehicleModels.ToList(); var mappedList = Mapper.Map<IEnumerable<VehicleModelPoco>>(list); return mappedList; } var paged = await vehicleModels.ToPagedListAsync(pagingParameters.PageNumber, pagingParameters.PageSize); var mapped = Mapper.Map<IEnumerable<VehicleModelPoco>>(paged); var vehicleModelsPagedList = new StaticPagedList<VehicleModelPoco>(mapped, paged.GetMetaData()); return vehicleModelsPagedList; }
public static ISortingParameters FillSortingParameters(this ISortingParameters destination, ISortingParameters parameters) { if (destination == null) { destination = new SortingParameters(); } destination.Sort = parameters.Sort; destination.SortDirection = parameters.SortDirection; return destination; }
/// <summary> /// Asynchronously gets a sorted range of locations. /// </summary> /// <param name="paging">An instance of <see cref="IPagingParameters"/>, provides paging options.</param> /// <param name="sorting">An instance of <see cref="ISortingParameters"/>, provides sorting options.</param> /// <returns>Returns <see cref="Task{IPagedList{ILocation}}"/></returns> public static Task<IPagedList<ILocation>> GetAsync(this ILocationRepository repository, IPagingParameters paging, ISortingParameters sorting) { return repository.GetAsync(paging, sorting, null); }
/// <summary> /// Asynchronously gets a range of locations which names contain the string given by the filter object. /// </summary> /// <param name="filter">Filter instance of type <see cref="IFilter"/></param> /// <param name="paging">A class instance that implements <see cref="IPagingParameters"/>, holds paging data.</param> /// <returns>Returns <see cref="Task{IPagedList{ILocation}}"/></returns> /// <exception cref="ArgumentNullException">Thrown if <paramref name="paging"/> is null.</exception> public async Task<IPagedList<ILocation>> GetAsync(IPagingParameters paging, ISortingParameters sorting, IFilter filter) { if (paging == null) { throw new ArgumentNullException("paging"); } if (sorting == null) { IList<ISortingPair> sortPair = new List<ISortingPair>() { new SortingPair("Name") }; sorting = new SortingParameters(sortPair); } var query = repository.GetAll<LocationEntity>() .OrderBy(sorting.GetJoinedSortExpressions()); if(filter != null && !string.IsNullOrEmpty(filter.SearchString)) { query = query.Where(e => e.Name.ToLower().Contains(filter.SearchString.ToLower())); } return Mapper.Map<IPagedList<ILocation>>(await query.ToPagedListAsync(paging.PageNumber, paging.PageSize)); }
/// <summary> /// Gets all or filtered vehicleMakes. /// </summary> /// <param name="filter"></param> /// <returns></returns> public virtual async Task<IEnumerable<IVehicleMake>> GetAsync(IPagingParameters pagingParameters, ISortingParameters sortingParameters, IFilter filter) { return await Repository.GetAsync(pagingParameters, sortingParameters, filter); }
/// <summary> /// Asynchronously gets a sorted range of locations. /// </summary> /// <param name="paging">A class instance that implements <see cref="IPagingParameters"/>, holds paging data.</param> /// <param name="sorting">A class instance that implements <see cref="ISortingParameters"/>, holds sorting options.</param> /// <returns>Returns <see cref="Task{IPagedList{ILocation}}"/></returns> public static Task<IPagedList<ILocation>> GetAsync(this ILocationService locationService, IPagingParameters paging, ISortingParameters sorting) { return locationService.GetAsync(paging, sorting, null); }
/// <summary> /// Gets vehicles. /// </summary> /// <param name="paging">Paging.</param> /// <param name="filterVehicle">Filter vehicle.</param> /// <param name="sorting">Sorting.</param> /// <returns>Vehicles.</returns> public async Task <IEnumerable <IVehicleModel> > GetVehiclesAsync(IPagingParameters paging, IVehicleFilter filterVehicle, ISortingParameters sorting) { return(await vehicleRepository.GetVehiclesAsync(paging, filterVehicle, sorting)); }