Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.47 KB | None | 0 0
  1.    public static IQueryable<Course> QueryCoursesIncludeAll(this DbSet<Course> set)
  2.         {
  3.             var query = set.AsQueryable();
  4.  
  5.             query = query.Include(x => x.Exercises);
  6.             query = query.Include(x => x.Exercises.Select(y => y.Packages));
  7.             query = query.Include(x => x.Exercises.Select(y => y.Archive));
  8.             query = query.Include(x => x.Exercises.Select(y => y.ProcessedExercises));
  9.             query = query.Include(x => x.Exercises.Select(y => y.ProcessedExercises.Select(z => z.SubmittedResults)));
  10.             query = query.Include(x => x.Packages);
  11.             query = query.Include(x => x.Packages.Select(y => y.Exercises));
  12.             query = query.Include(x => x.Packages.Select(y => y.Archive));
  13.             query = query.Include(x => x.CourseArchives);
  14.             query = query.Include(x => x.Contributors);
  15.             query = query.Include(x => x.Owner);
  16.            
  17.             return query;
  18.         }
  19.  
  20.  
  21.   public static async Task<List<Course>> GetCoursesAsync(WebUser webUser)
  22.         {
  23.             using (var ctx = new DatabaseContext())
  24.             {
  25.                 var query = ctx.Courses.QueryCoursesIncludeAll();
  26.  
  27.                 if (webUser.Role != WebUserRole.Administrator)
  28.                 {
  29.                     query = query.Where(x => x.Owner.Id == webUser.Id || x.Contributors.Any(y => y.Id == webUser.Id));
  30.                 }
  31.  
  32.                 return await query.ToListAsync();
  33.             }
  34.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement