public IEnumerable <IdentityUser <Guid> > FindUsersByClass(Guid classId, IEnrolementRepository enrolementRepository)
        {
            // must pull one of the tables into local memory with .ToList() before executing the join
            // otherwise, entity framework will throw an argumentnullexception
            // calling .ToList() on users executes the query

            /*return (
             *  from u in this.IdentityUser.ToList()
             *  join e in enrolementRepository.Enrolement
             *  on u.Id equals e.UserId
             *  where e.ClassId == classId
             *  select new IdentityUser<Guid> {
             *      Id = u.Id,
             *      Email = u.Email,
             *      UserName = u.UserName
             *      }
             *  ).ToList();*/
            // the following does the same as the above but using the lambda syntax instead of the linq syntax

            /* return this.IdentityUser.ToList().Join(
             *  enrolementRepository.Enrolement,
             *  u => u.Id,
             *  e => e.UserId,
             *  (u, e) => new IdentityUser<Guid>{Id = u.Id, Email = u.Email, UserName = u.UserName}
             *  ).ToList();*/
            // the following executes the join on the sql server instead of pulling the table into local memory and then doing a linq join
            IdentityUserSqlRepository userSqlRepository = new IdentityUserSqlRepository(this.Database.GetDbConnection().ConnectionString);

            return(userSqlRepository.FindUsersByClass(classId, enrolementRepository));
        }
        public StudentGetAllTestsQueryHandler(ITestRepository testRepository, IEnrolementRepository enrolementRepository, IMapper mapper)
        {
            _testRepository       = testRepository ?? throw new ArgumentNullException(nameof(testRepository));
            _enrolementRepository = enrolementRepository ?? throw new ArgumentNullException(nameof(enrolementRepository));

            _mapper = mapper ?? throw new ArgumentNullException(nameof(mapper));
        }
        public SubmitTestCommandHandler(IEnrolementRepository enrolementRepository, IEnrolementAnswerRepository enrolementAnswerRepository, IQuestionRepository qquestionRepository, IMapper mapper)
        {
            _enrolementRepository       = enrolementRepository ?? throw new ArgumentNullException(nameof(enrolementRepository));
            _enrolementAnswerRepository = enrolementAnswerRepository ?? throw new ArgumentNullException(nameof(enrolementAnswerRepository));
            _questionRepository         = qquestionRepository ?? throw new ArgumentNullException(nameof(qquestionRepository));

            _mapper = mapper ?? throw new ArgumentNullException(nameof(mapper));
        }
        public StudentGetOneTestQueryHandler(ITestRepository testRepository, IEnrolementRepository enrolementRepository, IKnowledgeSpaceRepository knowledgeSpaceRepository, IMapper mapper)
        {
            _testRepository           = testRepository ?? throw new ArgumentNullException(nameof(testRepository));
            _enrolementRepository     = enrolementRepository ?? throw new ArgumentNullException(nameof(enrolementRepository));
            _knowledgeSpaceRepository = knowledgeSpaceRepository ?? throw new ArgumentNullException(nameof(knowledgeSpaceRepository));

            _mapper = mapper ?? throw new ArgumentNullException(nameof(mapper));
        }
 public ProblemsController(
     IProblemRepository problemRepository,
     IEnrolementRepository enrolementRepository,
     IAssignmentRepository assignmentRepository)
 {
     this.problemRepository    = problemRepository;
     this.enrolementRepository = enrolementRepository;
     this.assignmentRepository = assignmentRepository;
 }
 public IEnumerable <Problem> FindProblemsByTeacher(Guid userId, IEnrolementRepository enrolementRepository)
 {
     // only implementing the linq version, see UserEntityFrameworkRepository.FindUsersByClass for SQL implementation
     return((
                from p in this.Problems.ToList()
                join e in enrolementRepository.Enrolement
                on p.ClassId equals e.ClassId
                where e.UserId == userId && e.Role == 2
                select p
                ).ToList());
 }
 public StudentGetNextQuestionQueryHandler(ITestRepository testRepository,
                                           IEnrolementRepository enrolementRepository,
                                           IKnowledgeSpaceRepository knowledgeSpaceRepository,
                                           IPossibleStatesWithPossibilitiesRepository possibleStatesWithPossibilitiesRepository,
                                           IEnrolementAnswerRepository enrolementAnswerRepository,
                                           IAnswerRepository answerRepository, IMapper mapper)
 {
     _testRepository             = testRepository ?? throw new ArgumentNullException(nameof(testRepository));
     _enrolementRepository       = enrolementRepository ?? throw new ArgumentNullException(nameof(enrolementRepository));
     _enrolementAnswerRepository = enrolementAnswerRepository ?? throw new ArgumentNullException(nameof(enrolementAnswerRepository));
     _knowledgeSpaceRepository   = knowledgeSpaceRepository ?? throw new ArgumentNullException(nameof(knowledgeSpaceRepository));
     _answerRepository           = answerRepository ?? throw new ArgumentNullException(nameof(knowledgeSpaceRepository));
     _possibleStatesWithPossibilitiesRepository = possibleStatesWithPossibilitiesRepository ?? throw new ArgumentNullException(nameof(possibleStatesWithPossibilitiesRepository));
     _mapper = mapper ?? throw new ArgumentNullException(nameof(mapper));
 }
 public IEnumerable <IdentityUser <Guid> > FindUsersByClass(Guid classId, IEnrolementRepository enrolementRepository)
 {
     // SELECT U.Id, U.Email, U.UserName, EmailConfirmed, PhoneNumber, PhoneNumberConfirmed, TwoFactorEnabled FROM [dbo].[IdentityUser] U JOIN [dbo].[Enrolement] E ON U.Id = E.UserId WHERE E.ClassId = classId
     return(ExecuteUnsafeQuery("SELECT U.Id, U.Email, U.UserName, EmailConfirmed, PhoneNumber, PhoneNumberConfirmed, TwoFactorEnabled FROM [dbo].[IdentityUser] U JOIN [dbo].[Enrolement] E ON U.Id = E.UserId WHERE E.ClassId = \'" + classId + "\'"));
 }
 public IEnumerable <Question> FindQuestionsByTeacher(Guid userId, IProblemRepository problemRepository, IEnrolementRepository enrolementRepository)
 {
     return((
                from q in this.Questions.ToList()
                join p in problemRepository.Problems
                on q.QuestionId equals p.QuestionId
                join e in enrolementRepository.Enrolement
                on p.ClassId equals e.ClassId
                where e.UserId == userId && e.Role == 2
                select q
                ).ToList());
 }
Esempio n. 10
0
 public EnrolementController(IEnrolementRepository repository) => this.repository = repository;
Esempio n. 11
0
 public QuestionsController(IQuestionRepository questionRepository, IEnrolementRepository enrolementRepository, IProblemRepository problemRepository)
 {
     this.questionRepository   = questionRepository;
     this.enrolementRepository = enrolementRepository;
     this.problemRepository    = problemRepository;
 }
Esempio n. 12
0
 public UsersController(IIdentityUserRepository identityUserRepository, IClassRepository classRepository, IEnrolementRepository enrolementRepository)
 {
     this.identityUserRepository = identityUserRepository;
     this.classRepository        = classRepository;
     this.enrolementRepository   = enrolementRepository;
 }
Esempio n. 13
0
 public IEnumerable <Assignment> FindAssignmentsByTeacher(Guid userId, IProblemRepository problemRepository, IEnrolementRepository enrolementRepository)
 {
     return((
                from a in this.Assignments.ToList()
                join p in problemRepository.Problems
                on a.ProblemId equals p.ProblemId
                join e in enrolementRepository.Enrolement
                on p.ClassId equals e.ClassId
                where e.UserId == userId && e.Role == 2
                select a
                ).ToList());
 }