public async Task <List <PropertyForRent> > ExtendedSearch(PropertyForRentsSort sortParam, string propertyNo, string city, string type, string postcode, string ownerpassport, string staffpassport) { var _propertysContext = _context.PropertyForRent .Include(p => p.OverseesBy) .Include(p => p.Owner) .OrderBy(c => c.PropertyNo); var list = await _propertysContext.ToListAsync(); list = list.FindAll(v => ((String.IsNullOrEmpty(propertyNo) ? true : v.PropertyNo.Contains(propertyNo)) && (String.IsNullOrEmpty(city) ? true : v.City.Contains(city)) && (String.IsNullOrEmpty(type) ? true : v.Type.Contains(type)) && (String.IsNullOrEmpty(postcode) ? true : v.PostCode.Contains(postcode)) && (String.IsNullOrEmpty(ownerpassport) ? true : v.Owner.OwnerPassportNo.Contains(ownerpassport)) && (String.IsNullOrEmpty(staffpassport) ? true : v.OverseesBy.StaffPassportNo.Contains(staffpassport)) )); switch (sortParam) { case PropertyForRentsSort.PropertyNo: return(list.OrderBy(v => v.PropertyNo).ToList()); case PropertyForRentsSort.City: return(list.OrderBy(v => v.City).ToList()); case PropertyForRentsSort.Type: return(list.OrderBy(v => v.Type).ToList()); case PropertyForRentsSort.Rooms: return(list.OrderBy(v => v.Rooms).ToList()); case PropertyForRentsSort.Rent: return(list.OrderBy(v => v.Rent).ToList()); default: return(list.OrderBy(v => v.PropertyNo).ToList()); } }
public async Task <List <PropertyForRent> > FilteredList(PropertyForRentsSort sortParam, PropertyForRentsSearch searchParam, string searchInput) { var _propertysContext = _context.PropertyForRent .Include(p => p.OverseesBy) .Include(p => p.Owner) .OrderBy(c => c.PropertyNo); var list = await _propertysContext.ToListAsync(); if (searchInput != null && searchInput != String.Empty) { switch (searchParam) { case PropertyForRentsSearch.PropertyNo: list = list.FindAll(v => v.PropertyNo.Contains(searchInput)); break; case PropertyForRentsSearch.City: list = list.FindAll(v => v.City.Contains(searchInput)); break; case PropertyForRentsSearch.Type: list = list.FindAll(v => v.Type.Contains(searchInput)); break; case PropertyForRentsSearch.OverseesPassportNo: list = list.FindAll(v => v.OverseesBy.StaffPassportNo.Contains(searchInput)); break; case PropertyForRentsSearch.OwnerPassportNo: list = list.FindAll(v => v.Owner.OwnerPassportNo.Contains(searchInput)); break; } } switch (sortParam) { case PropertyForRentsSort.PropertyNo: return(list.OrderBy(v => v.PropertyNo).ToList()); case PropertyForRentsSort.City: return(list.OrderBy(v => v.City).ToList()); case PropertyForRentsSort.Type: return(list.OrderBy(v => v.Type).ToList()); case PropertyForRentsSort.Rooms: return(list.OrderBy(v => v.Rooms).ToList()); case PropertyForRentsSort.Rent: return(list.OrderBy(v => v.Rent).ToList()); default: return(list.OrderBy(v => v.PropertyNo).ToList()); } }