public List <Advertisement> GetAdsByFilter(AdSearchFilter searchFilter) { var result = advertisementRepo.GetTable() .Include(ad => ad.bikeModel).ThenInclude(model => model.bikeBrand) .AsQueryable(); if (searchFilter != null) { if (searchFilter.brandId.HasValue) { result = result.Where(ad => ad.bikeModel.brandID == searchFilter.brandId); } if (searchFilter.priceFrom.HasValue) { result = result.Where(ad => ad.price >= searchFilter.priceFrom); } if (searchFilter.priceTo.HasValue) { result = result.Where(ad => ad.price <= searchFilter.priceTo); } if (searchFilter.regionId.HasValue) { result = result.Where(ad => ad.city.regionID == searchFilter.regionId); } } return(result.ToList()); }
public bool LoadFilterData(AdSearchFilter searchFilter) { searchFilter.bikeBrands = bikeBrandRepo.GetAll().ToList(); searchFilter.regions = regionRepo.GetAll().ToList(); return(true); }
public void PriceFromTo() { // Arrange int expectedPriceFrom = 1000; int expectedPriceTo = 2000; AdSearchFilter filter = new AdSearchFilter { priceFrom = expectedPriceFrom, priceTo = expectedPriceTo }; var serviceProvider = GetServiceProvider(); var AdRepository = serviceProvider.GetService <IGenericRepository <Advertisement> >(); AdFilterService adFilterService = new AdFilterService(AdRepository); // Act var advertisementsList = adFilterService.GetAdsByFilter(filter); // Assert for (int i = 0; i < advertisementsList.Count; i++) { Assert.IsTrue(advertisementsList[i].price >= expectedPriceFrom); Assert.IsTrue(advertisementsList[i].price <= expectedPriceTo); } }
public void BrandSelected() { // Arrange int expectedBrandId = 2; AdSearchFilter filter = new AdSearchFilter { brandId = expectedBrandId }; var serviceProvider = GetServiceProvider(); var AdRepository = serviceProvider.GetService <IGenericRepository <Advertisement> >(); AdFilterService adFilterService = new AdFilterService(AdRepository); // Act var advertisementsList = adFilterService.GetAdsByFilter(filter); // Assert for (int i = 0; i < advertisementsList.Count; i++) { Assert.IsTrue(advertisementsList[i].bikeModel.brandID == expectedBrandId); } }
public SearchAdViewModel() { searchFilter = new AdSearchFilter(); }