private IEnumerable <Advert> FilterSearch(IEnumerable <Advert> adverts, AdvertSearchModel model) { IEnumerable <Advert> filteredList = new List <Advert>(); if (model.Keywords != null) { foreach (string keyword in model.Keywords) { filteredList = filteredList.Concat(adverts.Where(ad => ad.Header.ToLower().Contains(keyword.ToLower()) || ad.Description.ToLower().Contains(keyword.ToLower()))); } // remove duplicates filteredList = filteredList.Distinct(); } else { filteredList = adverts; } if (model.ProvinceId != 0) { filteredList = filteredList.Where(ad => ad.ProvinceId == model.ProvinceId); } if (model.CityId != 0) { filteredList = filteredList.Where(ad => ad.CityId == model.CityId); } filteredList = filteredList.Where(ad => ad.Price >= model.MinPrice); if (model.MaxPrice != 0) { filteredList = filteredList.Where(ad => ad.Price <= model.MaxPrice); } switch (model.OrderBy) { case 1: { filteredList = filteredList.OrderByDescending(ad => ad.Date); break; } case 2: { filteredList = filteredList.OrderBy(ad => ad.Price); break; } default: { filteredList = filteredList.OrderByDescending(ad => ad.Price); break; } } return(filteredList); }
public IEnumerable <AdvertViewModel> SearchNonFeaturedAdverts(AdvertSearchModel model) { var entityList = _repo.GetAllAdverts(); entityList = entityList.Where(ad => ad.State == "Live" && ad.Featured == false); var returnList = FilterSearch(entityList, model); return(returnList.Select(advert => _mapper.ViewMapper(advert))); }
public List <AdvertViewModel> SearchUserAdverts(int userId, AdvertSearchModel model) { var entityList = _repo.GetAllUserAdverts(userId); entityList = entityList.Where(ad => ad.State != "Deleted").ToList(); var returnList = FilterSearch(entityList, model); return(returnList.Select(advert => _advertMapper.ViewMapper(advert)).ToList()); }
public ActionResult <IEnumerable <AdvertViewModel> > SearchUserAdverts(int userId, AdvertSearchModel model) { var adverts = _userService.SearchUserAdverts(userId, model); return(Ok(adverts)); }
public ActionResult <IEnumerable <AdvertViewModel> > SearchNonFeaturedAdverts(AdvertSearchModel model) { var adverts = _adService.SearchNonFeaturedAdverts(model); return(Ok(adverts)); }