public GroupsCreatorAndCopier(UlearnDb db, ICourseRolesRepo courseRolesRepo, IManualCheckingsForOldSolutionsAdder manualCheckingsForOldSolutionsAdder) { this.db = db; this.courseRolesRepo = courseRolesRepo; this.manualCheckingsForOldSolutionsAdder = manualCheckingsForOldSolutionsAdder; }
public static async Task <Func <Slide, string> > BuildGetGitEditLinkFunc(string userId, Course course, ICourseRolesRepo courseRolesRepo, ICoursesRepo coursesRepo) { var courseRole = await courseRolesRepo.GetRoleAsync(userId, course.Id); var canEditGit = courseRole <= CourseRoleType.CourseAdmin; if (!canEditGit) { return(s => null); } var publishedCourseVersion = await coursesRepo.GetPublishedCourseVersionAsync(course.Id); if (publishedCourseVersion == null) { return(s => null); } var repoUrl = publishedCourseVersion.RepoUrl; var pathToCourseXml = publishedCourseVersion.PathToCourseXml; if (repoUrl == null || pathToCourseXml == null) { return(s => null); } var courseXmlDirectory = course.CourseXmlDirectory; return(slide => { var pathRelative2CourseXml = slide.Info.SlideFile.FullName.Substring(courseXmlDirectory.FullName.Length + 1); return GitUtils.GetSlideEditLink(repoUrl, pathToCourseXml, pathRelative2CourseXml); }); }
public UsersController(IWebCourseManager courseManager, UlearnDb db, IUsersRepo usersRepo, IUserSearcher userSearcher, ICourseRolesRepo courseRolesRepo) : base(courseManager, db, usersRepo) { this.userSearcher = userSearcher; this.courseRolesRepo = courseRolesRepo; }
public SearcherByLogin(IUsersRepo usersRepo, ICourseRolesRepo courseRolesRepo, IAccessRestrictor accessRestrictor) : base(usersRepo, courseRolesRepo, accessRestrictor, true, true, true, true, SearchField.Login ) { }
public CourseAccessAuthorizationHandler(ICoursesRepo coursesRepo, ICourseRolesRepo courseRolesRepo, IUsersRepo usersRepo, ILogger logger) : base(logger) { this.coursesRepo = coursesRepo; this.courseRolesRepo = courseRolesRepo; this.usersRepo = usersRepo; }
public SearcherByEmail(IUsersRepo usersRepo, ICourseRolesRepo courseRolesRepo, IAccessRestrictor accessRestrictor) : base(usersRepo, courseRolesRepo, accessRestrictor, true, true, true, false, SearchField.Email ) { }
public UsersController(ILogger logger, IWebCourseManager courseManager, UlearnDb db, IUsersRepo usersRepo, ICourseRoleUsersFilter courseRoleUsersFilter, IUserSearcher userSearcher, ICourseRolesRepo courseRolesRepo) : base(logger, courseManager, db, usersRepo) { this.userSearcher = userSearcher; this.courseRolesRepo = courseRolesRepo; this.courseRoleUsersFilter = courseRoleUsersFilter ?? throw new ArgumentNullException(nameof(courseRoleUsersFilter)); }
public SlideRenderer(IUlearnVideoAnnotationsClient videoAnnotationsClient, IUserSolutionsRepo solutionsRepo, ISlideCheckingsRepo slideCheckingsRepo, ICourseRolesRepo courseRolesRepo) { this.videoAnnotationsClient = videoAnnotationsClient; this.solutionsRepo = solutionsRepo; this.slideCheckingsRepo = slideCheckingsRepo; this.courseRolesRepo = courseRolesRepo; }
public SearcherByNames(IUsersRepo usersRepo, ICourseRolesRepo courseRolesRepo, IAccessRestrictor accessRestrictor) : base(usersRepo, courseRolesRepo, accessRestrictor, true, true, true, true, SearchField.Name, u => u.FirstName, u => u.LastName ) { }
public CommentsController(ILogger logger, IWebCourseManager courseManager, UlearnDb db, ICommentsRepo commentsRepo, ICommentLikesRepo commentLikesRepo, ICommentPoliciesRepo commentPoliciesRepo, IUsersRepo usersRepo, ICoursesRepo coursesRepo, ICourseRolesRepo courseRolesRepo, INotificationsRepo notificationsRepo, IGroupMembersRepo groupMembersRepo, IGroupAccessesRepo groupAccessesRepo) : base(logger, courseManager, db, usersRepo, commentsRepo, commentLikesRepo, coursesRepo, courseRolesRepo, notificationsRepo, groupMembersRepo, groupAccessesRepo) { this.commentPoliciesRepo = commentPoliciesRepo; }
public ReviewCommentsController(IWebCourseManager courseManager, UlearnDb db, IUsersRepo usersRepo, ISlideCheckingsRepo slideCheckingsRepo, ICourseRolesRepo courseRolesRepo, IUnitsRepo unitsRepo, INotificationsRepo notificationsRepo) : base(courseManager, db, usersRepo) { this.slideCheckingsRepo = slideCheckingsRepo; this.courseRolesRepo = courseRolesRepo; this.unitsRepo = unitsRepo; this.notificationsRepo = notificationsRepo; this.notificationsRepo = notificationsRepo; }
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 NotificationsRepo(UlearnDb db, IServiceProvider serviceProvider, IUnitsRepo unitsRepo, ICourseRolesRepo courseRolesRepo, IUsersRepo usersRepo, IWebCourseManager courseManager) { this.db = db; this.serviceProvider = serviceProvider; this.unitsRepo = unitsRepo; this.usersRepo = usersRepo; this.courseRolesRepo = courseRolesRepo; this.courseManager = courseManager; }
public BaseCommentController(ILogger logger, IWebCourseManager courseManager, UlearnDb db, IUsersRepo usersRepo, ICommentsRepo commentsRepo, ICommentLikesRepo commentLikesRepo, ICoursesRepo coursesRepo, ICourseRolesRepo courseRolesRepo, INotificationsRepo notificationsRepo) : base(logger, courseManager, db, usersRepo) { this.commentsRepo = commentsRepo; this.commentLikesRepo = commentLikesRepo; this.coursesRepo = coursesRepo; this.courseRolesRepo = courseRolesRepo; this.notificationsRepo = notificationsRepo; }
public FlashcardsController(ILogger logger, IWebCourseManager courseManager, UlearnDb db, IUsersRepo usersRepo, IUsersFlashcardsVisitsRepo usersFlashcardsVisitsRepo, IUserFlashcardsUnlockingRepo userFlashcardsUnlockingRepo, ICourseRolesRepo courseRolesRepo, IGroupAccessesRepo groupAccessesRepo) : base(logger, courseManager, db, usersRepo) { this.usersFlashcardsVisitsRepo = usersFlashcardsVisitsRepo; this.userFlashcardsUnlockingRepo = userFlashcardsUnlockingRepo; this.courseRolesRepo = courseRolesRepo; this.groupAccessesRepo = groupAccessesRepo; }
public AccountController(ILogger logger, IOptions <WebApiConfiguration> options, WebCourseManager courseManager, UlearnDb db, UlearnUserManager userManager, SignInManager <ApplicationUser> signInManager, ICourseRolesRepo courseRolesRepo, ICoursesRepo coursesRepo, IUsersRepo usersRepo, ISystemAccessesRepo systemAccessesRepo) : base(logger, courseManager, db, usersRepo) { this.userManager = userManager; this.signInManager = signInManager; this.courseRolesRepo = courseRolesRepo; this.coursesRepo = coursesRepo; this.systemAccessesRepo = systemAccessesRepo; this.configuration = options.Value; }
public void OneTimeSetUp() { SetupTestInfrastructureAsync(services => { services.AddScoped <TempCourseController>(); }).GetAwaiter().GetResult(); tempCourseController = GetController <TempCourseController>(); tempCourseController.DontCheckBaseCourseExistsOnCreate = true; tempCoursesRepo = serviceProvider.GetService <ITempCoursesRepo>(); courseRolesRepo = serviceProvider.GetService <ICourseRolesRepo>(); courseManager = serviceProvider.GetService <IWebCourseManager>(); testCourseDirectory = new DirectoryInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TestData", "TempCourses", "Help")); workingCourseDirectory = new DirectoryInfo(Path.Combine(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "WorkingCourse"))); }
public ExportController(IWebCourseManager courseManager, UlearnDb db, IUsersRepo usersRepo, IGroupMembersRepo groupMembersRepo, IVisitsRepo visitsRepo, IGroupsRepo groupsRepo, IUserQuizzesRepo userQuizzesRepo, ICourseRolesRepo courseRolesRepo) : base(courseManager, db, usersRepo) { this.groupMembersRepo = groupMembersRepo; this.visitsRepo = visitsRepo; this.groupsRepo = groupsRepo; this.userQuizzesRepo = userQuizzesRepo; this.courseRolesRepo = courseRolesRepo; }
public GroupController(ILogger logger, WebCourseManager courseManager, UlearnDb db, IGroupsRepo groupsRepo, IGroupAccessesRepo groupAccessesRepo, IGroupMembersRepo groupMembersRepo, IUsersRepo usersRepo, ICourseRolesRepo courseRolesRepo, INotificationsRepo notificationsRepo, IGroupsCreatorAndCopier groupsCreatorAndCopier) : base(logger, courseManager, db, usersRepo) { this.groupsRepo = groupsRepo; this.groupAccessesRepo = groupAccessesRepo; this.groupMembersRepo = groupMembersRepo; this.courseRolesRepo = courseRolesRepo; this.notificationsRepo = notificationsRepo; this.groupsCreatorAndCopier = groupsCreatorAndCopier; }
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 BaseCommentController(IWebCourseManager courseManager, UlearnDb db, IUsersRepo usersRepo, ICommentsRepo commentsRepo, ICommentLikesRepo commentLikesRepo, ICoursesRepo coursesRepo, ICourseRolesRepo courseRolesRepo, INotificationsRepo notificationsRepo, IGroupMembersRepo groupMembersRepo, IGroupAccessesRepo groupAccessesRepo) : base(courseManager, db, usersRepo) { this.commentsRepo = commentsRepo; this.commentLikesRepo = commentLikesRepo; this.coursesRepo = coursesRepo; this.courseRolesRepo = courseRolesRepo; this.notificationsRepo = notificationsRepo; this.groupMembersRepo = groupMembersRepo; this.groupAccessesRepo = groupAccessesRepo; }
public GroupController(IWebCourseManager courseManager, UlearnDb db, IGroupsRepo groupsRepo, IGroupAccessesRepo groupAccessesRepo, IGroupMembersRepo groupMembersRepo, IUsersRepo usersRepo, ICourseRolesRepo courseRolesRepo, INotificationsRepo notificationsRepo, IGroupsCreatorAndCopier groupsCreatorAndCopier, IUnitsRepo unitsRepo, ISlideCheckingsRepo slideCheckingsRepo) : base(courseManager, db, usersRepo) { this.groupsRepo = groupsRepo; this.groupAccessesRepo = groupAccessesRepo; this.groupMembersRepo = groupMembersRepo; this.courseRolesRepo = courseRolesRepo; this.notificationsRepo = notificationsRepo; this.groupsCreatorAndCopier = groupsCreatorAndCopier; this.unitsRepo = unitsRepo; this.slideCheckingsRepo = slideCheckingsRepo; }
public UserProgressController(IWebCourseManager courseManager, UlearnDb db, IUsersRepo usersRepo, IVisitsRepo visitsRepo, IUserQuizzesRepo userQuizzesRepo, IAdditionalScoresRepo additionalScoresRepo, ICourseRolesRepo courseRolesRepo, IGroupAccessesRepo groupAccessesRepo, IGroupMembersRepo groupMembersRepo, ISlideCheckingsRepo slideCheckingsRepo) : base(courseManager, db, usersRepo) { this.visitsRepo = visitsRepo; this.userQuizzesRepo = userQuizzesRepo; this.additionalScoresRepo = additionalScoresRepo; this.courseRolesRepo = courseRolesRepo; this.groupAccessesRepo = groupAccessesRepo; this.groupMembersRepo = groupMembersRepo; this.slideCheckingsRepo = slideCheckingsRepo; }
public CodeReviewStatisticsController(IWebCourseManager courseManager, ISlideCheckingsRepo slideCheckingsRepo, IUsersRepo usersRepo, IGroupsRepo groupsRepo, IGroupMembersRepo groupMembersRepo, ICourseRolesRepo courseRolesRepo, UlearnDb db) : base(courseManager, db, usersRepo) { this.slideCheckingsRepo = slideCheckingsRepo; this.groupsRepo = groupsRepo; this.groupMembersRepo = groupMembersRepo; this.courseRolesRepo = courseRolesRepo; }
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; }
protected AbstractSearcherForInstructors( IUsersRepo usersRepo, ICourseRolesRepo courseRolesRepo, IAccessRestrictor accessRestrictor, bool hasSystemAdministratorAccess, bool hasCourseAdminAccess, bool hasInstructorAccessToGroupMembers, bool hasInstructorAccessToCourseInstructors, SearchField searchField ) { this.usersRepo = usersRepo; this.courseRolesRepo = courseRolesRepo; this.accessRestrictor = accessRestrictor; this.hasSystemAdministratorAccess = hasSystemAdministratorAccess; this.hasCourseAdminAccess = hasCourseAdminAccess; this.hasInstructorAccessToGroupMembers = hasInstructorAccessToGroupMembers; this.hasInstructorAccessToCourseInstructors = hasInstructorAccessToCourseInstructors; this.searchField = searchField; }
public GroupAccessesRepo( UlearnDb db, IGroupsRepo groupsRepo, ISystemAccessesRepo systemAccessesRepo, ICoursesRepo coursesRepo, IGroupMembersRepo groupMembersRepo, IUsersRepo usersRepo, ICourseRolesRepo courseRolesRepo, IWebCourseManager courseManager ) { this.db = db; this.groupsRepo = groupsRepo; this.systemAccessesRepo = systemAccessesRepo; this.coursesRepo = coursesRepo; this.groupMembersRepo = groupMembersRepo; this.courseRolesRepo = courseRolesRepo; this.usersRepo = usersRepo; this.courseManager = courseManager; }
public AbstractSearcherForInstructors( IUsersRepo usersRepo, ICourseRolesRepo courseRolesRepo, IAccessRestrictor accessRestrictor, bool hasSystemAdministratorAccess, bool hasCourseAdminAccess, bool hasInstructorAccessToGroupMembers, bool hasInstructorAccessToCourseInstructors, SearchField searchField, params Expression <Func <ApplicationUser, string> >[] userProperties ) { if (userProperties.Length == 0) { throw new ArgumentException("UserProperties should be specified", nameof(userProperties)); } this.usersRepo = usersRepo; this.courseRolesRepo = courseRolesRepo; this.accessRestrictor = accessRestrictor; this.hasSystemAdministratorAccess = hasSystemAdministratorAccess; this.hasCourseAdminAccess = hasCourseAdminAccess; this.hasInstructorAccessToGroupMembers = hasInstructorAccessToGroupMembers; this.hasInstructorAccessToCourseInstructors = hasInstructorAccessToCourseInstructors; this.searchField = searchField; this.userProperties = userProperties; }