Example #1
0
        public VehiclesSpecification(VehicleSpecParams vehicleParams)
            : base(x =>
                   (string.IsNullOrEmpty(vehicleParams.Search) || x.StateNumberPlate.ToLower().Contains(vehicleParams.Search)) &&
                   (!vehicleParams.ManufacturerId.HasValue || x.Model.ManufacturerId == vehicleParams.ManufacturerId) &&
                   (!vehicleParams.ModelId.HasValue || x.ModelId == vehicleParams.ModelId) &&
                   (!vehicleParams.ColorId.HasValue || x.ColorId == vehicleParams.ColorId) &&
                   (!vehicleParams.FuelTypeId.HasValue || x.VehicleFuelTypes.Any(c => c.FuelType.Id == vehicleParams.FuelTypeId))
                   )
        {
            AddInclude(x => x.Include(e => e.Color));
            AddInclude(x => x.Include(e => e.Model).ThenInclude(m => m.Manufacturer));
            AddInclude(x => x.Include(e => e.VehicleOwners).ThenInclude(m => m.Owner));
            AddInclude(x => x.Include(e => e.VehicleFuelTypes).ThenInclude(m => m.FuelType));
            AddInclude(x => x.Include(e => e.Photos));
            AddOrderBy(x => x.Model.ModelNameEN);
            ApplyPaging(vehicleParams.PageSize * (vehicleParams.PageIndex - 1), vehicleParams.PageSize);

            if (!string.IsNullOrEmpty(vehicleParams.Sort))
            {
                switch (vehicleParams.Sort)
                {
                case "manufactureDateAsc":
                    AddOrderBy(d => d.ManufactureDate);
                    break;

                case "manufactureDateDesc":
                    AddOrderByDescending(d => d.ManufactureDate);
                    break;

                default:
                    AddOrderBy(x => x.Model.ModelNameEN);
                    break;
                }
            }
        }
 public VehicleWithFiltersForCountSpecification(VehicleSpecParams vehicleParams)
     : base(x =>
            (string.IsNullOrEmpty(vehicleParams.Search) || x.StateNumberPlate.ToLower().Contains(vehicleParams.Search)) &&
            (!vehicleParams.ManufacturerId.HasValue || x.Model.ManufacturerId == vehicleParams.ManufacturerId) &&
            (!vehicleParams.ModelId.HasValue || x.ModelId == vehicleParams.ModelId) &&
            (!vehicleParams.ColorId.HasValue || x.ColorId == vehicleParams.ColorId) &&
            (!vehicleParams.FuelTypeId.HasValue || x.VehicleFuelTypes.Any(c => c.FuelType.Id == vehicleParams.FuelTypeId))
            )
 {
 }