Esempio n. 1
0
        public CarsFilterResult GetAll(CarsFilterCrireria criteria)
        {
            IQueryable <Car> cars = _context.Cars.AsQueryable();

            if (!string.IsNullOrEmpty(criteria.Brand?.Trim()))
            {
                // Case-insensitive string comparison is not supported as query string
                string brandToLower = criteria.Brand.Trim().ToLower();
                cars = cars.Where(c => c.Brand.Name.ToLower().StartsWith(brandToLower));
            }

            if (!string.IsNullOrEmpty(criteria.Model?.Trim()))
            {
                string modelToLower = criteria.Model.Trim().ToLower();
                cars = cars.Where(c => c.Model.Name.ToLower().StartsWith(modelToLower));
            }

            if (criteria.Status != Status.All)
            {
                cars = cars.Where(c => c.Status == criteria.Status);
            }

            int totalItems = cars.Count();

            return(new CarsFilterResult
            {
                Cars = cars.Skip((criteria.PageNumber - 1) * criteria.ItemsPerPage)
                       .Take(criteria.ItemsPerPage)
                       .AsEnumerable(),
                TotalItems = totalItems
            });
        }
Esempio n. 2
0
 public CarsFilterResult GetAllCars(CarsFilterCrireria criteria)
 {
     return(_carReposotory.GetAll(criteria));
 }
Esempio n. 3
0
        public IHttpActionResult GetAllCars([FromUri] CarsFilterCrireria criteria)
        {
            CarsFilterResult cars = _carService.GetAllCars(criteria);

            return(Ok(cars));
        }