Beispiel #1
0
        /// <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));
 }