예제 #1
0
        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);
        }
예제 #2
0
 public async Task <IPagedList <VehicleMake> > ReadVehicleMakes(IReadVehicleMakesParams readParams)
 {
     return(await repository.ReadVehicleMakes(readParams));
 }