Example #1
0
        public static async Task <HashSet <Guid> > GetSolvedSlides(IUserSolutionsRepo solutionsRepo, IUserQuizzesRepo userQuizzesRepo, Course course, string userId)
        {
            var solvedSlides = await solutionsRepo.GetIdOfPassedSlides(course.Id, userId);

            solvedSlides.UnionWith(await userQuizzesRepo.GetPassedSlideIdsAsync(course.Id, userId));
            return(solvedSlides);
        }
Example #2
0
        public static HashSet <Guid> GetSolvedSlides(IUserSolutionsRepo solutionsRepo, IUserQuizzesRepo userQuizzesRepo, Course course, string userId)
        {
            var solvedSlides = solutionsRepo.GetIdOfPassedSlides(course.Id, userId);

            solvedSlides.UnionWith(userQuizzesRepo.GetPassedSlideIds(course.Id, userId));
            return(solvedSlides);
        }
Example #3
0
 public SlideRenderer(IUlearnVideoAnnotationsClient videoAnnotationsClient,
                      IUserSolutionsRepo solutionsRepo, ISlideCheckingsRepo slideCheckingsRepo, ICourseRolesRepo courseRolesRepo)
 {
     this.videoAnnotationsClient = videoAnnotationsClient;
     this.solutionsRepo          = solutionsRepo;
     this.slideCheckingsRepo     = slideCheckingsRepo;
     this.courseRolesRepo        = courseRolesRepo;
 }
Example #4
0
        public static async Task <Func <Slide, int> > BuildGetSlideMaxScoreFunc(IUserSolutionsRepo solutionsRepo, IUserQuizzesRepo userQuizzesRepo, IVisitsRepo visitsRepo, IGroupsRepo groupsRepo,
                                                                                Course course, string userId)
        {
            var solvedSlidesIds = GetSolvedSlides(solutionsRepo, userQuizzesRepo, course, userId);
            var slidesWithUsersManualChecking = visitsRepo.GetSlidesWithUsersManualChecking(course.Id, userId).ToImmutableHashSet();
            var enabledManualCheckingForUser  = await groupsRepo.IsManualCheckingEnabledForUserAsync(course, userId).ConfigureAwait(false);

            return(s => GetMaxScoreForUsersSlide(s, solvedSlidesIds.Contains(s.Id), slidesWithUsersManualChecking.Contains(s.Id), enabledManualCheckingForUser));
        }
Example #5
0
 public SlidesController(ILogger logger, IWebCourseManager courseManager, UlearnDb db, IUsersRepo usersRepo, ICourseRolesRepo courseRolesRepo,
                         IUserSolutionsRepo solutionsRepo, IUserQuizzesRepo userQuizzesRepo, IVisitsRepo visitsRepo, IGroupsRepo groupsRepo)
     : base(logger, courseManager, db, usersRepo)
 {
     CourseRolesRepo = courseRolesRepo;
     SolutionsRepo   = solutionsRepo;
     UserQuizzesRepo = userQuizzesRepo;
     VisitsRepo      = visitsRepo;
     GroupsRepo      = groupsRepo;
 }
 public ManualCheckingsForOldSolutionsAdder(
     IUserSolutionsRepo userSolutionsRepo, ISlideCheckingsRepo slideCheckingsRepo, IVisitsRepo visitsRepo, IUserQuizzesRepo userQuizzesRepo,
     IWebCourseManager courseManager)
 {
     this.userSolutionsRepo  = userSolutionsRepo;
     this.slideCheckingsRepo = slideCheckingsRepo;
     this.visitsRepo         = visitsRepo;
     this.userQuizzesRepo    = userQuizzesRepo;
     this.courseManager      = courseManager;
 }
 public ExerciseStatisticsController(ILogger logger, WebCourseManager courseManager, IUserSolutionsRepo userSolutionsRepo, UlearnDb db, IUsersRepo usersRepo,
                                     IUserSolutionsRepo solutionsRepo, IUserQuizzesRepo userQuizzesRepo, IVisitsRepo visitsRepo, IGroupsRepo groupsRepo)
     : base(logger, courseManager, db, usersRepo)
 {
     this.userSolutionsRepo = userSolutionsRepo;
     this.solutionsRepo     = solutionsRepo;
     this.userQuizzesRepo   = userQuizzesRepo;
     this.visitsRepo        = visitsRepo;
     this.groupsRepo        = groupsRepo;
 }
Example #8
0
 public SlidesController(IWebCourseManager courseManager, UlearnDb db, IUsersRepo usersRepo, ICourseRolesRepo courseRolesRepo,
                         IUserSolutionsRepo solutionsRepo, IUserQuizzesRepo userQuizzesRepo, IVisitsRepo visitsRepo, IGroupsRepo groupsRepo,
                         SlideRenderer slideRenderer, ICoursesRepo coursesRepo)
     : base(courseManager, db, usersRepo)
 {
     this.coursesRepo     = coursesRepo;
     this.courseRolesRepo = courseRolesRepo;
     this.solutionsRepo   = solutionsRepo;
     this.userQuizzesRepo = userQuizzesRepo;
     this.visitsRepo      = visitsRepo;
     this.groupsRepo      = groupsRepo;
     this.slideRenderer   = slideRenderer;
 }
Example #9
0
 public CoursesController(ILogger logger, IWebCourseManager courseManager, UlearnDb db, ICoursesRepo coursesRepo,
                          IUsersRepo usersRepo, ICourseRolesRepo courseRolesRepo, IUnitsRepo unitsRepo, IUserSolutionsRepo solutionsRepo,
                          IUserQuizzesRepo userQuizzesRepo, IVisitsRepo visitsRepo, IGroupsRepo groupsRepo)
     : base(logger, courseManager, db, usersRepo)
 {
     this.coursesRepo     = coursesRepo;
     this.courseRolesRepo = courseRolesRepo;
     this.unitsRepo       = unitsRepo;
     this.solutionsRepo   = solutionsRepo;
     this.userQuizzesRepo = userQuizzesRepo;
     this.visitsRepo      = visitsRepo;
     this.groupsRepo      = groupsRepo;
 }
Example #10
0
 public ExerciseController(IWebCourseManager courseManager, UlearnDb db, MetricSender metricSender,
                           IUsersRepo usersRepo, IUserSolutionsRepo userSolutionsRepo, ICourseRolesRepo courseRolesRepo, IVisitsRepo visitsRepo,
                           ILtiConsumersRepo ltiConsumersRepo, ILtiRequestsRepo ltiRequestsRepo, ISlideCheckingsRepo slideCheckingsRepo, IGroupsRepo groupsRepo,
                           IStyleErrorsRepo styleErrorsRepo)
     : base(courseManager, db, usersRepo)
 {
     this.metricSender       = metricSender;
     this.userSolutionsRepo  = userSolutionsRepo;
     this.courseRolesRepo    = courseRolesRepo;
     this.visitsRepo         = visitsRepo;
     this.ltiConsumersRepo   = ltiConsumersRepo;
     this.ltiRequestsRepo    = ltiRequestsRepo;
     this.slideCheckingsRepo = slideCheckingsRepo;
     this.groupsRepo         = groupsRepo;
     this.styleErrorsRepo    = styleErrorsRepo;
 }
Example #11
0
 public ExerciseController(IWebCourseManager courseManager, UlearnDb db, MetricSender metricSender,
                           IUsersRepo usersRepo, IUserSolutionsRepo userSolutionsRepo, ICourseRolesRepo courseRolesRepo, IVisitsRepo visitsRepo,
                           ISlideCheckingsRepo slideCheckingsRepo, IGroupsRepo groupsRepo, StyleErrorsResultObserver styleErrorsResultObserver,
                           IStyleErrorsRepo styleErrorsRepo, IServiceScopeFactory serviceScopeFactory)
     : base(courseManager, db, usersRepo)
 {
     this.metricSender              = metricSender;
     this.userSolutionsRepo         = userSolutionsRepo;
     this.courseRolesRepo           = courseRolesRepo;
     this.visitsRepo                = visitsRepo;
     this.slideCheckingsRepo        = slideCheckingsRepo;
     this.groupsRepo                = groupsRepo;
     this.styleErrorsRepo           = styleErrorsRepo;
     this.styleErrorsResultObserver = styleErrorsResultObserver;
     this.serviceScopeFactory       = serviceScopeFactory;
 }
Example #12
0
 public RunnerController(IWebCourseManager courseManager, UlearnDb db, IOptions <WebApiConfiguration> options,
                         IUsersRepo usersRepo, IUserSolutionsRepo userSolutionsRepo, ISlideCheckingsRepo slideCheckingsRepo,
                         IGroupsRepo groupsRepo, IVisitsRepo visitsRepo, MetricSender metricSender,
                         XQueueResultObserver xQueueResultObserver, SandboxErrorsResultObserver sandboxErrorsResultObserver,
                         AntiPlagiarismResultObserver antiPlagiarismResultObserver, StyleErrorsResultObserver styleErrorsResultObserver)
     : base(courseManager, db, usersRepo)
 {
     configuration   = options.Value;
     resultObservers = new List <IResultObserver>
     {
         xQueueResultObserver,
         sandboxErrorsResultObserver,
         antiPlagiarismResultObserver,
         styleErrorsResultObserver,
     };
     this.userSolutionsRepo  = userSolutionsRepo;
     this.slideCheckingsRepo = slideCheckingsRepo;
     this.groupsRepo         = groupsRepo;
     this.visitsRepo         = visitsRepo;
     this.metricSender       = metricSender;
 }
Example #13
0
 public XQueueRepo(UlearnDb db, UlearnUserManager userManager, IUserSolutionsRepo userSolutionsRepo)
 {
     this.db                = db;
     this.userManager       = userManager;
     this.userSolutionsRepo = userSolutionsRepo;
 }
 public ExerciseStatisticsController(ILogger logger, WebCourseManager courseManager, IUserSolutionsRepo userSolutionsRepo, UlearnDb db, IUsersRepo usersRepo)
     : base(logger, courseManager, db, usersRepo)
 {
     this.userSolutionsRepo = userSolutionsRepo;
 }