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); }
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); }
public SlideRenderer(IUlearnVideoAnnotationsClient videoAnnotationsClient, IUserSolutionsRepo solutionsRepo, ISlideCheckingsRepo slideCheckingsRepo, ICourseRolesRepo courseRolesRepo) { this.videoAnnotationsClient = videoAnnotationsClient; this.solutionsRepo = solutionsRepo; this.slideCheckingsRepo = slideCheckingsRepo; this.courseRolesRepo = courseRolesRepo; }
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)); }
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; }
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; }
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; }
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; }
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; }
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; }
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; }