public IQueryable <Application> SearchApplications(ApplicationSearchModel searchModel) { var result = _context.Applications.Include(a => a.CountyNavigation).Include(a => a.LocationNavigation).Include(a => a.SubCountyNavigation).Include(a => a.SubLocationNavigation).Include(a => a.VillageNavigation).AsQueryable(); if (searchModel != null) { if (searchModel.ApplicationId.HasValue) { result = result.Where(x => x.ApplicationId == searchModel.ApplicationId); } if (searchModel.County.HasValue) { result = result.Where(x => x.County == searchModel.County); } if (searchModel.SubCounty.HasValue) { result = result.Where(x => x.SubCounty == searchModel.SubCounty); } if (searchModel.Location.HasValue) { result = result.Where(x => x.Location == searchModel.Location); } if (searchModel.SubLocation.HasValue) { result = result.Where(x => x.SubLocation == searchModel.SubLocation); } if (!string.IsNullOrEmpty(searchModel.FullName)) { result = result.Where(x => x.FullName.Contains(searchModel.FullName)); } } return(result); }
public ActionResult Index(ApplicationViewModel viewModel) { ApplicationViewModel mymodel = new ApplicationViewModel(); ApplicationSearchModel searchModel = viewModel.ApplicationSearchModel; var business = new ApplicationBusinessLogic(_context); var model = business.SearchApplications(searchModel); mymodel.Applications = model.ToList(); mymodel.ApplicationSearchModel = new ApplicationSearchModel(); ViewData["County"] = new SelectList(_context.Counties, "CountyId", "CountyName"); ViewData["Location"] = new SelectList(_context.Locations, "LocationId", "LocationName"); ViewData["SubCounty"] = new SelectList(_context.SubCounties, "SubCountyId", "SubCountyName"); ViewData["SubLocation"] = new SelectList(_context.SubLocations, "SubLocationId", "SubLocationName"); ViewData["Village"] = new SelectList(_context.Villages, "VillageId", "VillageName"); return(View(mymodel)); }