Ejemplo n.º 1
0
 public GroupsController(ILogger logger, WebCourseManager courseManager, UlearnDb db,
                         GroupsRepo groupsRepo, GroupAccessesRepo groupAccessesRepo)
     : base(logger, courseManager, db)
 {
     this.groupsRepo        = groupsRepo;
     this.groupAccessesRepo = groupAccessesRepo;
 }
Ejemplo n.º 2
0
 public NotificationsRepo(ULearnDb db)
 {
     this.db       = db;
     unitsRepo     = new UnitsRepo(db);
     userRolesRepo = new UserRolesRepo(db);
     usersRepo     = new UsersRepo(db);
     courseManager = WebCourseManager.Instance;
 }
Ejemplo n.º 3
0
        public CertificatesController(ULearnDb db, WebCourseManager courseManager)
        {
            this.courseManager = courseManager;

            certificatesRepo     = new CertificatesRepo(db);
            userManager          = new ULearnUserManager(db);
            certificateGenerator = new CertificateGenerator(db, courseManager);
        }
Ejemplo n.º 4
0
 public JoinGroupController(ILogger logger, WebCourseManager courseManager, UlearnDb db,
                            IUsersRepo usersRepo,
                            IGroupsRepo groupsRepo, IGroupMembersRepo groupMembersRepo)
     : base(logger, courseManager, db, usersRepo)
 {
     this.groupsRepo       = groupsRepo;
     this.groupMembersRepo = groupMembersRepo;
 }
Ejemplo n.º 5
0
        public Program(WebCourseManager courseManager)
        {
            this.courseManager = courseManager;
            notificationSender = new NotificationSender(courseManager);
            var configuration = ApplicationConfiguration.Read <UlearnConfiguration>();

            keepAliver        = new ServiceKeepAliver(configuration.GraphiteServiceName);
            keepAliveInterval = TimeSpan.FromSeconds(configuration.KeepAliveInterval ?? 30);
        }
 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;
 }
Ejemplo n.º 7
0
 public UserSolutionsRepo(
     UlearnDb db,
     TextsRepo textsRepo, VisitsRepo visitsRepo,
     WebCourseManager courseManager)
 {
     this.db            = db;
     this.textsRepo     = textsRepo;
     this.visitsRepo    = visitsRepo;
     this.courseManager = courseManager;
 }
Ejemplo n.º 8
0
 public GroupsRepo(ULearnDb db, WebCourseManager courseManager)
 {
     this.db            = db;
     this.courseManager = courseManager;
     slideCheckingsRepo = new SlideCheckingsRepo(db);
     userSolutionsRepo  = new UserSolutionsRepo(db, courseManager);
     userQuizzesRepo    = new UserQuizzesRepo(db);
     visitsRepo         = new VisitsRepo(db);
     userRolesRepo      = new UserRolesRepo(db);
 }
Ejemplo n.º 9
0
 public ManualCheckingsForOldSolutionsAdder(
     IUserSolutionsRepo userSolutionsRepo, ISlideCheckingsRepo slideCheckingsRepo, IVisitsRepo visitsRepo, IUserQuizzesRepo userQuizzesRepo,
     WebCourseManager courseManager, ILogger logger)
 {
     this.userSolutionsRepo  = userSolutionsRepo;
     this.slideCheckingsRepo = slideCheckingsRepo;
     this.visitsRepo         = visitsRepo;
     this.userQuizzesRepo    = userQuizzesRepo;
     this.courseManager      = courseManager;
     this.logger             = logger;
 }
Ejemplo n.º 10
0
        public NotificationsController(ILogger logger, WebCourseManager courseManager, UlearnDb db, NotificationsRepo notificationsRepo, FeedRepo feedRepo, NotificationDataPreloader notificationDataPreloader)
            : base(logger, courseManager, db)
        {
            this.notificationsRepo         = notificationsRepo ?? throw new ArgumentNullException(nameof(notificationsRepo));
            this.feedRepo                  = feedRepo ?? throw new ArgumentNullException(nameof(feedRepo));
            this.notificationDataPreloader = notificationDataPreloader;

            if (commentsFeedNotificationTransport == null)
            {
                commentsFeedNotificationTransport = feedRepo.GetCommentsFeedNotificationTransport();
            }
        }
Ejemplo n.º 11
0
 public CodeReviewStatisticsController(ILogger logger, WebCourseManager courseManager,
                                       SlideCheckingsRepo slideCheckingsRepo,
                                       UserRolesRepo userRolesRepo,
                                       UsersRepo usersRepo,
                                       GroupsRepo groupsRepo, UlearnDb db)
     : base(logger, courseManager, db)
 {
     this.slideCheckingsRepo = slideCheckingsRepo;
     this.userRolesRepo      = userRolesRepo;
     this.usersRepo          = usersRepo;
     this.groupsRepo         = groupsRepo;
 }
Ejemplo n.º 12
0
        public Program(WebCourseManager courseManager)
        {
            this.courseManager = courseManager;
            notificationSender = new NotificationSender(courseManager);
            keepAliver         = new ServiceKeepAliver("notifications");

            if (!int.TryParse(ConfigurationManager.AppSettings["ulearn.notifications.keepAlive.interval"], out var keepAliveIntervalSeconds))
            {
                keepAliveIntervalSeconds = 30;
            }
            keepAliveInterval = TimeSpan.FromSeconds(keepAliveIntervalSeconds);
        }
Ejemplo n.º 13
0
 public AccountController(
     ILogger logger, IOptions <WebApiConfiguration> options, WebCourseManager courseManager, UlearnDb db, UlearnUserManager userManager, SignInManager <ApplicationUser> signInManager,
     UserRolesRepo userRolesRepo, CoursesRepo coursesRepo
     )
     : base(logger, courseManager, db)
 {
     this.userManager   = userManager;
     this.signInManager = signInManager;
     this.userRolesRepo = userRolesRepo;
     this.coursesRepo   = coursesRepo;
     this.configuration = options.Value;
 }
Ejemplo n.º 14
0
 public GroupAccessesRepo(
     UlearnDb db,
     GroupsRepo groupsRepo, SystemAccessesRepo systemAccessesRepo, CoursesRepo coursesRepo,
     WebCourseManager courseManager
     )
 {
     this.db                 = db;
     this.groupsRepo         = groupsRepo;
     this.systemAccessesRepo = systemAccessesRepo;
     this.coursesRepo        = coursesRepo;
     this.courseManager      = courseManager;
 }
Ejemplo n.º 15
0
 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;
 }
Ejemplo n.º 16
0
 public GroupsRepo(
     UlearnDb db,
     SlideCheckingsRepo slideCheckingsRepo, UserSolutionsRepo userSolutionsRepo, UserQuizzesRepo userQuizzesRepo, VisitsRepo visitsRepo, UserRolesRepo userRolesRepo,
     WebCourseManager courseManager)
 {
     this.db = db;
     this.slideCheckingsRepo = slideCheckingsRepo;
     this.userSolutionsRepo  = userSolutionsRepo;
     this.userQuizzesRepo    = userQuizzesRepo;
     this.visitsRepo         = visitsRepo;
     this.userRolesRepo      = userRolesRepo;
     this.courseManager      = courseManager;
 }
Ejemplo n.º 17
0
        public BaseExerciseController(ULearnDb db, WebCourseManager courseManager, MetricSender metricSender)
        {
            this.db            = db;
            this.courseManager = courseManager;
            this.metricSender  = metricSender;

            userSolutionsRepo  = new UserSolutionsRepo(db, courseManager);
            slideCheckingsRepo = new SlideCheckingsRepo(db);
            groupsRepo         = new GroupsRepo(db, courseManager);
            visitsRepo         = new VisitsRepo(db);
            notificationsRepo  = new NotificationsRepo(db);
            usersRepo          = new UsersRepo(db);
            styleErrorsRepo    = new StyleErrorsRepo(db);
            unitsRepo          = new UnitsRepo(db);
        }
Ejemplo n.º 18
0
 public CodeReviewStatisticsController(ILogger logger, WebCourseManager courseManager,
                                       ISlideCheckingsRepo slideCheckingsRepo,
                                       ICourseRolesRepo courseRolesRepo,
                                       IUsersRepo usersRepo,
                                       IGroupsRepo groupsRepo,
                                       IGroupMembersRepo groupMembersRepo,
                                       ICourseRoleUsersFilter courseRoleUsersFilter,
                                       UlearnDb db)
     : base(logger, courseManager, db, usersRepo)
 {
     this.slideCheckingsRepo    = slideCheckingsRepo;
     this.courseRolesRepo       = courseRolesRepo;
     this.groupsRepo            = groupsRepo;
     this.groupMembersRepo      = groupMembersRepo;
     this.courseRoleUsersFilter = courseRoleUsersFilter;
 }
Ejemplo n.º 19
0
 public GroupsRepo(
     UlearnDb db,
     SlideCheckingsRepo slideCheckingsRepo, UserSolutionsRepo userSolutionsRepo, UserQuizzesRepo userQuizzesRepo, VisitsRepo visitsRepo,
     GroupsCreatorAndCopier groupsCreatorAndCopier,
     WebCourseManager courseManager,
     ILogger logger)
 {
     this.db = db;
     this.slideCheckingsRepo     = slideCheckingsRepo;
     this.userSolutionsRepo      = userSolutionsRepo;
     this.userQuizzesRepo        = userQuizzesRepo;
     this.visitsRepo             = visitsRepo;
     this.groupsCreatorAndCopier = groupsCreatorAndCopier;
     this.courseManager          = courseManager;
     this.logger = logger;
 }
Ejemplo n.º 20
0
 public GroupAccessesRepo(
     UlearnDb db,
     IGroupsRepo groupsRepo, ISystemAccessesRepo systemAccessesRepo, ICoursesRepo coursesRepo, IGroupMembersRepo groupMembersRepo,
     ICourseRolesRepo courseRolesRepo,
     WebCourseManager courseManager,
     ILogger logger
     )
 {
     this.db                 = db;
     this.groupsRepo         = groupsRepo;
     this.systemAccessesRepo = systemAccessesRepo;
     this.coursesRepo        = coursesRepo;
     this.groupMembersRepo   = groupMembersRepo;
     this.courseRolesRepo    = courseRolesRepo;
     this.courseManager      = courseManager;
     this.logger             = logger;
 }
Ejemplo n.º 21
0
 public BaseController(ILogger logger, WebCourseManager courseManager, UlearnDb db)
 {
     this.logger        = logger;
     this.courseManager = courseManager;
     this.db            = db;
 }
Ejemplo n.º 22
0
 public BaseController(ILogger logger, WebCourseManager courseManager, UlearnDb db)
 {
     this.logger        = logger ?? throw new ArgumentException(nameof(logger));
     this.courseManager = courseManager ?? throw new ArgumentException(nameof(courseManager));
     this.db            = db ?? throw new ArgumentException(nameof(db));
 }
Ejemplo n.º 23
0
 public UserSolutionsRepo(ULearnDb db, WebCourseManager courseManager)
 {
     this.db            = db;
     this.courseManager = courseManager;
     textsRepo          = new TextsRepo(db);
 }
Ejemplo n.º 24
0
 public ExerciseStatisticsController(ILogger logger, WebCourseManager courseManager, IUserSolutionsRepo userSolutionsRepo, UlearnDb db, IUsersRepo usersRepo)
     : base(logger, courseManager, db, usersRepo)
 {
     this.userSolutionsRepo = userSolutionsRepo;
 }
Ejemplo n.º 25
0
 public SlidesController(ILogger logger, WebCourseManager courseManager)
     : base(logger, courseManager)
 {
 }
 public ExerciseStatisticsController(ILogger logger, WebCourseManager courseManager, UserSolutionsRepo userSolutionsRepo)
     : base(logger, courseManager)
 {
     this.userSolutionsRepo = userSolutionsRepo;
 }
Ejemplo n.º 27
0
 public BaseController(ILogger logger, WebCourseManager courseManager)
 {
     this.logger        = logger;
     this.courseManager = courseManager;
 }
Ejemplo n.º 28
0
 public UsersController(ILogger logger, WebCourseManager courseManager, UsersRepo usersRepo, UserRolesRepo userRolesRepo, UlearnDb db)
     : base(logger, courseManager, db)
 {
     this.usersRepo     = usersRepo ?? throw new ArgumentNullException(nameof(usersRepo));
     this.userRolesRepo = userRolesRepo ?? throw new ArgumentNullException(nameof(userRolesRepo));
 }
Ejemplo n.º 29
0
        public static IServiceCollection AddDatabaseServices(this IServiceCollection services, ILogger logger)
        {
            var courseManager = new WebCourseManager(logger);

            services.AddSingleton <WebCourseManager>(courseManager);
            services.AddSingleton <IWebCourseManager>(courseManager);

            services.AddScoped <UlearnUserManager>();
            services.AddScoped <InitialDataCreator>();

            services.AddIdentity <ApplicationUser, IdentityRole>(options =>
            {
                options.Password.RequireDigit           = false;
                options.Password.RequiredLength         = 6;
                options.Password.RequireNonAlphanumeric = false;
                options.Password.RequireUppercase       = false;
                options.Password.RequireLowercase       = false;
            })
            .AddEntityFrameworkStores <UlearnDb>()
            .AddDefaultTokenProviders();

            /* DI for database repos: */

            /* Groups */
            services.AddScoped <IGroupsRepo, GroupsRepo>();
            services.AddScoped <IGroupMembersRepo, GroupMembersRepo>();
            services.AddScoped <IGroupAccessesRepo, GroupAccessesRepo>();
            services.AddScoped <IManualCheckingsForOldSolutionsAdder, ManualCheckingsForOldSolutionsAdder>();
            services.AddScoped <IGroupsCreatorAndCopier, GroupsCreatorAndCopier>();
            services.AddScoped <IUsersGroupsGetter, UsersGroupsGetter>();

            /* Comments */
            services.AddScoped <ICommentsRepo, CommentsRepo>();
            services.AddScoped <ICommentLikesRepo, CommentLikesRepo>();
            services.AddScoped <ICommentPoliciesRepo, CommentPoliciesRepo>();

            /* Users */
            services.AddScoped <IUsersRepo, UsersRepo>();
            services.AddScoped <IUserSearcher, UserSearcher>();
            services.AddScoped <IAccessRestrictor, AccessRestrictor>();
            services.AddScoped <IFilter, FilterByCourseRole>();
            services.AddScoped <IFilter, FilterByLmsRole>();
            services.AddScoped <ISearcher, SearcherByUserId>();
            services.AddScoped <ISearcher, SearcherByNames>();
            services.AddScoped <ISearcher, SearcherByLogin>();
            services.AddScoped <ISearcher, SearcherByEmail>();
            services.AddScoped <ISearcher, SearcherBySocialLogin>();

            /* Others */
            services.AddScoped <ICourseRolesRepo, CourseRolesRepo>();
            services.AddScoped <ICourseRoleUsersFilter, CourseRoleUsersFilter>();
            services.AddScoped <ICoursesRepo, CoursesRepo>();
            services.AddScoped <ISlideCheckingsRepo, SlideCheckingsRepo>();
            services.AddScoped <IUserSolutionsRepo, UserSolutionsRepo>();
            services.AddScoped <IUserQuizzesRepo, UserQuizzesRepo>();
            services.AddScoped <IVisitsRepo, VisitsRepo>();
            services.AddScoped <ITextsRepo, TextsRepo>();
            services.AddScoped <INotificationsRepo, NotificationsRepo>();
            services.AddScoped <IFeedRepo, FeedRepo>();
            services.AddScoped <ISystemAccessesRepo, SystemAccessesRepo>();

            return(services);
        }
Ejemplo n.º 30
0
 public SlidesController(ILogger logger, WebCourseManager courseManager, UlearnDb db)
     : base(logger, courseManager, db)
 {
 }