public IQueryable <Booking> Filter(IQueryable <Booking> query) { if (EmployeeId.NotNullOrLessThanOne()) { query = query.Where(b => b.EmployeeId == EmployeeId); } if (VehicleId.NotNullOrLessThanOne()) { query = query.Where(b => b.VehicleId == VehicleId); } if (Statuses != null) { query = query.Where(b => Statuses.Any(s => s == b.Status)); } if (FromDate != null) { query = query.Where(b => b.StartDate > FromDate); } if (ToDate != null) { query = query.Where(b => b.EndDate < ToDate); } if (EmployeeUserName.NotNullOrEmpty()) { query = query.Where(b => b.Employee.Identity.UserName == EmployeeUserName); } return(query); }