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 }); }
public CarsFilterResult GetAllCars(CarsFilterCrireria criteria) { return(_carReposotory.GetAll(criteria)); }
public IHttpActionResult GetAllCars([FromUri] CarsFilterCrireria criteria) { CarsFilterResult cars = _carService.GetAllCars(criteria); return(Ok(cars)); }