public IQueryable<University> FilterUniversities(IQueryable<University> universities, FilterModel filter) { if (universities == null) { return universities; } universities = universities.OrderBy(u => u.Name); if (filter != null) { if (filter.Filter != null) { universities = universities.Where(u => u.Name.Contains(filter.Filter)); } if (filter.OrderBy != null) { if (filter.Order == "asc") { if (filter.OrderBy == "name") { universities = universities.OrderBy(u => u.Name); } else if (filter.OrderBy == "country") { universities = universities.OrderBy(u => u.Country.Name); } else if (filter.OrderBy == "tuition") { universities = universities.OrderBy(u => u.TuitionFee); } else if (filter.OrderBy == "sat") { universities = universities.OrderBy(u => u.RequiredSAT); } else if (filter.OrderBy == "toeflpbt") { universities = universities.OrderBy(u => u.RequiredPBTToefl); } else if (filter.OrderBy == "toeflibt") { universities = universities.OrderBy(u => u.RequiredIBTToefl); } } else { if (filter.OrderBy == "name") { universities = universities.OrderByDescending(u => u.Name); } else if (filter.OrderBy == "country") { universities = universities.OrderByDescending(u => u.Country); } else if (filter.OrderBy == "tuition") { universities = universities.OrderByDescending(u => u.TuitionFee); } else if (filter.OrderBy == "sat") { universities = universities.OrderByDescending(u => u.RequiredSAT); } else if (filter.OrderBy == "toeflpbt") { universities = universities.OrderByDescending(u => u.RequiredPBTToefl); } else if (filter.OrderBy == "toeflibt") { universities = universities.OrderByDescending(u => u.RequiredIBTToefl); } } } } return universities; }