コード例 #1
0
 public UserProgressController(ILogger logger, IWebCourseManager courseManager, UlearnDb db, IUsersRepo usersRepo,
                               IVisitsRepo visitsRepo, IUserQuizzesRepo userQuizzesRepo)
     : base(logger, courseManager, db, usersRepo)
 {
     this.visitsRepo      = visitsRepo;
     this.userQuizzesRepo = userQuizzesRepo;
 }
コード例 #2
0
        //private readonly ILogger _logger;

        public PatientsController(IVisitsRepo visits, IPatientsRepo patients, IPatientsMapper pMapper, IVisitsMapper vMapper)
        {
            _visits   = visits;
            _patients = patients;
            _pMapper  = pMapper;
            _vMapper  = vMapper;
        }
コード例 #3
0
ファイル: FeedRepo.cs プロジェクト: PhonkX/uLearn
 public FeedRepo(UlearnDb db, INotificationsRepo notificationsRepo, IVisitsRepo visitsRepo, ILogger logger)
 {
     this.db = db ?? throw new ArgumentNullException(nameof(db));
     this.notificationsRepo = notificationsRepo ?? throw new ArgumentNullException(nameof(notificationsRepo));
     this.visitsRepo        = visitsRepo ?? throw new ArgumentNullException(nameof(visitsRepo));
     this.logger            = logger;
 }
コード例 #4
0
 public LtiResultObserver(IWebCourseManager courseManager, ILtiConsumersRepo ltiConsumersRepo,
                          ILtiRequestsRepo ltiRequestsRepo, IVisitsRepo visitsRepo)
 {
     this.courseManager    = courseManager;
     this.ltiConsumersRepo = ltiConsumersRepo;
     this.ltiRequestsRepo  = ltiRequestsRepo;
     this.visitsRepo       = visitsRepo;
 }
コード例 #5
0
ファイル: UserSolutionsRepo.cs プロジェクト: PhonkX/uLearn
 public UserSolutionsRepo(
     UlearnDb db,
     ITextsRepo textsRepo, IVisitsRepo visitsRepo,
     WebCourseManager courseManager)
 {
     this.db            = db;
     this.textsRepo     = textsRepo;
     this.visitsRepo    = visitsRepo;
     this.courseManager = courseManager;
 }
コード例 #6
0
 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;
 }
コード例 #7
0
 public VisitService(IUnitWork unitWork,
                     IVisitsRepo repo,
                     IMapper mapper,
                     MedicalRepVisitsHandlers handler)
 {
     //_unitWork = unitWork;
     _unitWork          = unitWork;
     _repo              = repo;
     _medicalRepHandler = handler;
 }
コード例 #8
0
 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;
 }
コード例 #9
0
ファイル: SlidesController.cs プロジェクト: DerArvend/Ulearn
 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;
 }
コード例 #10
0
 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;
 }
コード例 #11
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;
 }
コード例 #12
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;
 }
コード例 #13
0
 public BaseCommentController(IWebCourseManager courseManager, UlearnDb db, IUsersRepo usersRepo,
                              ICommentsRepo commentsRepo, ICommentLikesRepo commentLikesRepo, ICoursesRepo coursesRepo, ICourseRolesRepo courseRolesRepo,
                              INotificationsRepo notificationsRepo, IGroupMembersRepo groupMembersRepo, IGroupAccessesRepo groupAccessesRepo, IVisitsRepo visitsRepo)
     : 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;
     this.visitsRepo        = visitsRepo;
 }
コード例 #14
0
 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;
 }
コード例 #15
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;
 }
コード例 #16
0
ファイル: ExerciseController.cs プロジェクト: SSKumk/Ulearn
 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;
 }
コード例 #17
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;
 }
コード例 #18
0
 public MedicalRepVisitsHandlers(ApplicationContext context, IVisitsRepo visitsRepo) : base(context)
 {
     _visitsRepo = visitsRepo;
 }
コード例 #19
0
 public CommentPoliciesController(IWebCourseManager courseManager, UlearnDb db, IUsersRepo usersRepo,
                                  ICommentsRepo commentsRepo, ICommentLikesRepo commentLikesRepo, ICoursesRepo coursesRepo, ICourseRolesRepo courseRolesRepo, INotificationsRepo notificationsRepo,
                                  ICommentPoliciesRepo commentPoliciesRepo, IGroupMembersRepo groupMembersRepo, IGroupAccessesRepo groupAccessesRepo, IVisitsRepo visitsRepo)
     : base(courseManager, db, usersRepo, commentsRepo, commentLikesRepo, coursesRepo, courseRolesRepo, notificationsRepo, groupMembersRepo, groupAccessesRepo, visitsRepo)
 {
     this.commentPoliciesRepo = commentPoliciesRepo;
 }
コード例 #20
0
 public FeedRepo(UlearnDb db, INotificationsRepo notificationsRepo, IVisitsRepo visitsRepo)
 {
     this.db = db;
     this.notificationsRepo = notificationsRepo;
     this.visitsRepo        = visitsRepo;
 }
コード例 #21
0
ファイル: ExerciseController.cs プロジェクト: SSKumk/Ulearn
        public static async Task <bool> SendToReviewAndUpdateScore(UserExerciseSubmission submissionNoTracking,
                                                                   IWebCourseManager courseManager, ISlideCheckingsRepo slideCheckingsRepo, IGroupsRepo groupsRepo, IVisitsRepo visitsRepo, MetricSender metricSender)
        {
            var userId   = submissionNoTracking.UserId;
            var courseId = submissionNoTracking.CourseId;
            var course   = await courseManager.GetCourseAsync(courseId);

            var exerciseSlide = course.FindSlideById(submissionNoTracking.SlideId, true) as ExerciseSlide;             // SlideId проверен в вызывающем методе

            if (exerciseSlide == null)
            {
                return(false);
            }
            var exerciseMetricId                = GetExerciseMetricId(courseId, exerciseSlide);
            var automaticCheckingNoTracking     = submissionNoTracking.AutomaticChecking;
            var isProhibitedUserToSendForReview = await slideCheckingsRepo.IsProhibitedToSendExerciseToManualChecking(courseId, exerciseSlide.Id, userId);

            var sendToReview = exerciseSlide.Scoring.RequireReview &&
                               submissionNoTracking.AutomaticCheckingIsRightAnswer &&
                               !isProhibitedUserToSendForReview &&
                               await groupsRepo.IsManualCheckingEnabledForUserAsync(course, userId);

            if (sendToReview)
            {
                await slideCheckingsRepo.RemoveWaitingManualCheckings <ManualExerciseChecking>(courseId, exerciseSlide.Id, userId, false);

                await slideCheckingsRepo.AddManualExerciseChecking(courseId, exerciseSlide.Id, userId, submissionNoTracking.Id);

                await visitsRepo.MarkVisitsAsWithManualChecking(courseId, exerciseSlide.Id, userId);

                metricSender.SendCount($"exercise.{exerciseMetricId}.sent_to_review");
                metricSender.SendCount("exercise.sent_to_review");
            }

            await visitsRepo.UpdateScoreForVisit(courseId, exerciseSlide, userId);

            if (automaticCheckingNoTracking != null)
            {
                var verdictForMetric = automaticCheckingNoTracking.GetVerdict().Replace(" ", "");
                metricSender.SendCount($"exercise.{exerciseMetricId}.{verdictForMetric}");
            }

            return(sendToReview);
        }
コード例 #22
0
ファイル: BaseController.cs プロジェクト: SSKumk/Ulearn
        public static async Task <Func <Slide, int> > BuildGetSlideMaxScoreFunc(IUserSolutionsRepo solutionsRepo, IUserQuizzesRepo userQuizzesRepo, IVisitsRepo visitsRepo, IGroupsRepo groupsRepo,
                                                                                Course course, string userId)
        {
            if (userId == null)
            {
                return(GetMaxScoreForGuest);
            }
            var solvedSlidesIds = await GetSolvedSlides(solutionsRepo, userQuizzesRepo, course, userId);

            var slidesWithUsersManualChecking = (await 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));
        }
コード例 #23
0
 public VisitsController(TPContext context, IVisitsRepo iRepo)
 {
     _context = context;
     _iRepo   = iRepo;
 }
コード例 #24
0
 public VisitsController(IVisitsRepo visits, IPatientsRepo patients, IVisitsMapper vmapper)
 {
     _visits   = visits;
     _patients = patients;
     _vmapper  = vmapper;
 }