public ActionResult Get([FromQuery] CarAdvertQueryModel carAdveryQuery = null) { var carAdverts = carAdvertService.GetByQuery(carAdveryQuery).ToList(); var response = mapper.Map <List <CarAdvertResponseModel> >(carAdverts); return(Ok(response)); }
public void GetByQuery_WhenTitleIsSupplied_FiltersByTitle() { //arrange var options = new DbContextOptionsBuilder <ApplicationContext>() .UseInMemoryDatabase(databaseName: "GetByQueryTitleSupplied") .Options; using (var context = new ApplicationContext(options)) { var service = new CarAdvertService(context); var items = GetTestCarAdverts().ToList(); items.ForEach(carAdvert => service.Add(carAdvert)); context.SaveChanges(); } var query = new CarAdvertQueryModel { Title = "Used Toyota Matrix" }; //act & Assert using (var context = new ApplicationContext(options)) { var service = new CarAdvertService(context); var allCarAdverts = service.GetByQuery(query).ToList(); Assert.Single(allCarAdverts); } }
public IEnumerable <CarAdvert> GetByQuery(CarAdvertQueryModel queryModel) { if (queryModel == null) { return(GetAllItems()); } var items = context.CarAdverts .WhereIf(!string.IsNullOrWhiteSpace(queryModel.Title), ca => ca.Title.Trim().ToLowerInvariant().Contains(queryModel.Title.Trim().ToLowerInvariant())) .WhereIf(queryModel.Fuel.HasValue, ca => ca.Fuel == queryModel.Fuel.Value) .WhereIf(queryModel.Price.HasValue, ca => ca.Price == queryModel.Price.Value) .WhereIf(queryModel.New.HasValue, ca => ca.New == queryModel.New.Value); return(items); }