private IQueryable<PAUPassenger> FilterQueryPassenger(ref IQueryable<PAUPassenger> query, eSearchCriteria criteria, string searchText) { switch (criteria) { case eSearchCriteria.FirstName: query.Where(p => p.FirstName.ToLower().Contains(searchText.ToLower())); break; case eSearchCriteria.LastName: query.Where(p => p.LastName.ToLower().Contains(searchText.ToLower())); break; case eSearchCriteria.FlightNo: query.Where(p => p.FlightNo.ToLower().Contains(searchText.ToLower())); break; case eSearchCriteria.FlightDate: break; case eSearchCriteria.Passport: query.Where(p => p.Passport.ToLower().Contains(searchText.ToLower())); break; } return query; }
private System.Linq.Expressions.Expression<Func<PAUPassenger, bool>> GetSearchExpression(eSearchCriteria criteria, string searchText) { System.Linq.Expressions.Expression<Func<PAUPassenger, bool>> expr = p => p.FirstName.ToLower().Contains(SearchText1.ToLower()); DateTime flightDate; if (!ConvertStringToDate(searchText, out flightDate) && criteria == eSearchCriteria.FlightDate) { MessageBox.Show("Invalid Date", "Error", MessageBoxButton.OK, MessageBoxImage.Error); return null; } switch (criteria) { case eSearchCriteria.LastName: expr = p => p.LastName.ToLower().Contains(searchText.ToLower()); break; case eSearchCriteria.FlightNo: expr = p => p.FlightNo.ToLower().Contains(searchText.ToLower()); break; case eSearchCriteria.Passport: expr = p => p.Passport.ToLower().Contains(searchText.ToLower()); break; case eSearchCriteria.FlightDate: expr = p => p.FlightDate.Value.Date.Day == flightDate.Day && p.FlightDate.Value.Date.Month == flightDate.Month && p.FlightDate.Value.Date.Year == flightDate.Year; break; } return expr; }