public List<UserProfile> GetFilteredProfiles(Search search) { List<UserProfile> list; try { list = entity.UserProfiles.Where( x => (x.Gender.Equals(search.Gender) && ((search.AgeFrom == 0 || (x.Age >= search.AgeFrom)) && (search.AgeTo == 0 || x.Age <= search.AgeTo)) && (string.IsNullOrEmpty(search.City) || search.City==x.City) && (string.IsNullOrEmpty(search.MaritalStatus) || x.MaritalStatus.Equals(search.MaritalStatus)))) .Select(x => x) .ToList(); } catch (Exception e) { return null; } return list; }
public ActionResult SearchResults() { string city = Request["city"]; int age = int.Parse(Request["age"]); string gender = Request["gender"]; string maritalStatus = Request["maritalStatus"]; if (maritalStatus.Equals("Never")) maritalStatus = "Never Married"; int fromAge = 0; int toAge = 0; if (age == 0) { fromAge = 0; toAge = 200; } if (age == 1) { fromAge = 18; toAge = 25; } if (age == 2) { fromAge = 26; toAge = 30; } if (age == 3) { fromAge = 31; toAge = 40; } if (age == 4) { fromAge = 41; toAge = 200; } List<UserProfileModel> list; Search searchRequest = new Search { AgeFrom = fromAge, AgeTo = toAge, City = city, Gender = gender, MaritalStatus = maritalStatus }; list = _entityUser.GetFilteredProfiles(searchRequest).ToList().Select(x => x.MapServerToClient()).ToList(); return View("_SearchResults",list); }