示例#1
0
        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);
            }
        }
示例#3
0
        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);
        }