private IQueryable <Publication> ApplyFilterForCost(BrowseFilterModel model, IQueryable <Publication> publications) { if (model.MinCost != null || model.MaxCost != null) { publications = publications.Where(m => m.Cost >= (model.MinCost ?? 0)); publications = publications.Where(m => m.Cost <= (model.MaxCost ?? Int32.MaxValue)); } return(publications); }
private IQueryable <Publication> ApplyFilterForProperty(BrowseFilterModel model, IQueryable <Publication> publications) { if (model.MinPropertyArea != null || model.MaxPropertyArea != null) { publications = publications.Where(m => m.RoomAmount >= (model.MinPropertyArea ?? 0)); publications = publications.Where(m => m.RoomAmount <= (model.MaxPropertyArea ?? Single.MaxValue)); } return(publications); }
private IQueryable <Publication> ApplyFilterForHouse(BrowseFilterModel model, IQueryable <Publication> publications) { publications = publications.Where(m => m.IsRent == model.IsRent); if (model.MinRoomAmount != null || model.MaxRoomAmount != null) { publications = publications.Where(m => m.RoomAmount >= (model.MinRoomAmount ?? 0)); publications = publications.Where(m => m.RoomAmount <= (model.MaxRoomAmount ?? Int32.MaxValue)); } return(publications); }
private IQueryable <Publication> ApplyFilterForRoom(BrowseFilterModel model, IQueryable <Publication> publications) { if (model.Floor != null) { publications = publications.Where(m => m.Floor == model.Floor); } if (model.OfferingRoomAmount != null) { publications = publications.Where(m => m.OfferingRoomAmount == model.OfferingRoomAmount); } publications = publications.Where(m => m.IsPassageRoom == model.IsPassageRoom); publications = publications.Where(m => m.IsFurnitureExist == model.IsFurnitureExist); publications = publications.Where(m => m.IsOneDayRent == model.IsOneDayRent); return(publications); }
private IQueryable <Publication> ApplyFilters(BrowseFilterModel model, IQueryable <Publication> publications) { publications = publications.Where(m => m.PropertyTypeId == model.PropertyType); publications = ApplyFilterForCost(model, publications); switch (model.PropertyType) { case 1: return(ApplyFilterForFlat(model, publications)); case 2: return(ApplyFilterForRoom(model, publications)); case 3: return(ApplyFilterForHouse(model, publications)); case 4: return(ApplyFilterForProperty(model, publications)); default: return(publications); } }
public ActionResult Browse(BrowseFilterModel model) { model.IsRent = !model.IsRent; var publications = db.Publications.Include(p => p.User) .Include(p => p.PropertyType) .Include(p => p.BlockOfFlatsType) .Include(p => p.BathroomType) .Include(p => p.BalconyType) .Include(p => p.WallMaterial); publications = publications.Where(m => m.IsApprovedByAdmin && m.IsActive && !m.IsDeleted); publications = ApplyFilters(model, publications); int pageNumber = 1; ViewBag.PropertyTypes = new SelectList(db.PropertyTypes.ToList(), "Id", "Content"); return(View(publications.OrderByDescending(x => x.Id).ToList().ToPagedList(pageNumber, pageSize))); }