public void Get_departments_with_filtered_inlude_with_filter_on_child_include() { ISchoolRepository repository = serviceProvider.GetRequiredService <ISchoolRepository>(); ICollection <DepartmentModel> list = Task.Run ( () => repository.GetItemsAsync <DepartmentModel, Department> ( d => d.Courses.Count > 0, null, null, new FilteredIncludeExpression[] { new FilteredIncludeExpression { Include = LinqHelpers.ToSelector <DepartmentModel, ICollection <CourseModel> >(i => i.Courses), FilteredIncludes = new FilteredIncludeExpression[] { new FilteredIncludeExpression { Include = LinqHelpers.ToSelector <CourseModel, ICollection <CourseAssignmentModel> >(i => i.Assignments), Filter = LinqHelpers.ToFilter <CourseAssignmentModel>(e => e.CourseID == -1) } } } } ) ).Result; Assert.True(list.First().Courses.Count > 0); Assert.True(list.First().Courses.First().Assignments.Count == 0); }
public void Get_instuctors_with_filtered_inlude_conditionally_select_reference_with_invalid_condition() { ISchoolRepository repository = serviceProvider.GetRequiredService <ISchoolRepository>(); ICollection <InstructorModel> list = Task.Run ( () => repository.GetItemsAsync <InstructorModel, Instructor> ( i => i.OfficeAssignment != null, null, null, new FilteredIncludeExpression[] { new FilteredIncludeExpression { Include = LinqHelpers.ToSelector <InstructorModel, OfficeAssignmentModel>(i => i.OfficeAssignment), Filter = LinqHelpers.ToFilter <OfficeAssignmentModel>(oa => oa.Location.StartsWith("*")) } } ) ).Result; Assert.Null(list.First().OfficeAssignment); }
public void Get_students_with_filtered_inlude_with_filter() { ISchoolRepository repository = serviceProvider.GetRequiredService <ISchoolRepository>(); ICollection <StudentModel> list = Task.Run ( () => repository.GetItemsAsync <StudentModel, Student> ( s => s.Enrollments.Count > 0, null, null, new FilteredIncludeExpression[] { new FilteredIncludeExpression { Include = LinqHelpers.ToSelector <StudentModel, ICollection <EnrollmentModel> >(i => i.Enrollments), Filter = LinqHelpers.ToFilter <EnrollmentModel>(e => e.EnrollmentID == -1) } } ) ).Result; Assert.True(list.First().Enrollments.Count == 0); }