Exemple #1
0
        public LeaderboardService(IRepository <LevelPointsHistory> levelPointsHistoryRepository,
                                  IRepository <AchievementHistory> achievementHistoryRepository,
                                  StudentService studentService)
        {
            this._levelPointsHistoryRepository = levelPointsHistoryRepository;
            this._achievementHistoryRepository = achievementHistoryRepository;
            this._studentService = studentService;

            this.StudentGameRole = _studentService.GetStudentRoleBySystemName(SystemStudentRoleNames.Game);
        }
Exemple #2
0
        public async Task <IActionResult> EditRoles(string username, RoleEditDto roleEditDto)
        {
            var user = _repo.GetStudentByUsername(username);

            var userRoles = _repo.GetUserRoles(user.Id);

            var selectedRoles = roleEditDto.RoleNames;

            selectedRoles = selectedRoles ?? new string [] {};

            foreach (var role in selectedRoles)
            {
                if (role == "Instructor")
                {
                    user.IsInstructor = true;
                }

                var r = _context.Roles.FirstOrDefault(x => x.Name == role);

                var check = _context.StudentRoles.FirstOrDefault(x => x.StudentId == user.Id && x.RoleId == r.Id);

                if (check == null)
                {
                    var sr = new StudentRole {
                        Student = user, Role = r
                    };
                    _context.StudentRoles.AddAsync(sr).Wait();
                    await _context.SaveChangesAsync();


                    // return Ok(selectedRoles);
                }
            }

            foreach (var role in userRoles)
            {
                var r = _context.Roles.FirstOrDefault(x => x.Name == role.Name);

                var check = _context.StudentRoles.FirstOrDefault(x => x.StudentId == user.Id && x.RoleId == r.Id);

                if (check != null && !selectedRoles.Contains(role.Name))
                {
                    _context.StudentRoles.Remove(check);
                    _context.SaveChangesAsync().Wait();


                    // return Ok(selectedRoles);
                }
            }

            return(Ok(selectedRoles));
            //return BadRequest("User already has that roles.");
        }
        public async Task <IActionResult> StudentRegister(StudentForRegisterDto userForRegisterDto)
        {
            // validate request

            userForRegisterDto.Username = userForRegisterDto.Username.ToLower();

            if (await _studentRepo.UserExists(userForRegisterDto.Username))
            {
                return(BadRequest("Username already exists"));
            }

            Random random            = new Random();
            var    randomPhotoNumber = random.Next(1, 100);

            var userToCreate = new Student
            {
                Username       = userForRegisterDto.Username,
                Name           = userForRegisterDto.Name,
                Surname        = userForRegisterDto.Surname,
                PhotoURL       = "https://randomuser.me/api/portraits/men/" + randomPhotoNumber + ".jpg",
                Created        = DateTime.Now,
                EnrollmentDate = DateTime.Now
            };

            var createdUser = await _studentRepo.Register(userToCreate, userForRegisterDto.Password);

            // role
            var r = _context.Roles.FirstOrDefault(x => x.Name == "Student");

            if (r != null)
            {
                var sr = new StudentRole {
                    Student = createdUser, Role = r
                };
                _context.StudentRoles.AddAsync(sr).Wait();
                _context.SaveChangesAsync().Wait();
            }
            //

            return(StatusCode(201));
        }
Exemple #4
0
        public void SeedData()
        {
            // Adding roles
            if (_context.Roles.Count() == 0)
            {
                var roles = new List <Role>
                {
                    new Role {
                        Name = "Student"
                    },
                    new Role {
                        Name = "Instructor"
                    },
                    new Role {
                        Name = "Administrator"
                    }
                };

                foreach (var role in roles)
                {
                    _context.Roles.AddAsync(role).Wait();
                    _context.SaveChanges();
                }
            }

            // Adding courses
            if (_context.Courses.Count() == 0)
            {
                Course course = new Course
                {
                    Name        = "Podstawy programowania",
                    Description = "Fundamenty programowania"
                };
                _context.Courses.Add(course);

                course = new Course
                {
                    Name        = "Zaawansowane programowanie",
                    Description = "Zaawansowane zagadnienia związane z językiem PHP."
                };
                _context.Courses.Add(course);

                // Adding modules
                Module module = new Module
                {
                    Name        = "Moduł 1",
                    Description = "Opis modułu",
                    Course      = course
                };
                _context.Modules.Add(module);

                // Adding students
                var studentData = System.IO.File.ReadAllText("Data/SeedData/StudentSeedData.json");
                var students    = JsonConvert.DeserializeObject <List <Student> >(studentData);
                foreach (var student in students)
                {
                    byte[] passwordHash, passwordSalt;
                    CreatePasswordHash("password", out passwordHash, out passwordSalt);

                    student.PasswordHash = passwordHash;
                    student.PasswordSalt = passwordSalt;
                    student.Username     = student.Username.ToLower();

                    _context.Students.Add(student);

                    var courseStudent = new CourseStudent {
                        Course = course, Student = student
                    };
                    _context.CourseStudents.AddAsync(courseStudent).Wait();

                    var role        = _context.Roles.FirstOrDefault(x => x.Name == "Student");
                    var studentRole = new StudentRole {
                        Student = student, Role = role
                    };

                    _context.StudentRoles.AddAsync(studentRole).Wait();
                }

                /* Instructor */
                Student instructor = new Student
                {
                    Username = "******",
                    Name     = "Przykładowy",
                    Surname  = "Instruktor",
                    PhotoURL = "https://randomuser.me/api/portraits/men/31.jpg"
                };
                byte[] pHash, pSalt;
                CreatePasswordHash("instruktor", out pHash, out pSalt);

                instructor.PasswordHash = pHash;
                instructor.PasswordSalt = pSalt;
                instructor.Username     = instructor.Username.ToLower();

                _context.Students.AddAsync(instructor).Wait();
                var r  = _context.Roles.FirstOrDefault(x => x.Name == "Instructor");
                var sr = new StudentRole {
                    Student = instructor, Role = r
                };
                _context.StudentRoles.AddAsync(sr).Wait();
                /*  */

                /* Adding course instructor */

                course.Instructor       = instructor;
                instructor.IsInstructor = true;

                /* */

                /* Administrator */
                Student admin = new Student
                {
                    Username = "******",
                    PhotoURL = "https://randomuser.me/api/portraits/men/36.jpg"
                };
                byte[] adminPasswordHash, adminPasswordSalt;
                CreatePasswordHash("admin", out adminPasswordHash, out adminPasswordSalt);

                admin.PasswordHash = adminPasswordHash;
                admin.PasswordSalt = adminPasswordSalt;
                admin.Username     = admin.Username.ToLower();
                _context.Students.AddAsync(admin).Wait();

                var roleAdmin = _context.Roles.FirstOrDefault(x => x.Name == "Administrator");
                var adminRole = new StudentRole {
                    Student = admin, Role = roleAdmin
                };
                _context.StudentRoles.AddAsync(adminRole).Wait();

                var roleInstructor = r;
                adminRole = new StudentRole {
                    Student = admin, Role = roleInstructor
                };
                _context.StudentRoles.AddAsync(adminRole).Wait();

                /*  */

                // Teacher teacher = new Teacher
                // {
                //     Username = "******"
                // };
                // teacher.Courses = new Collection<Course> {course};
                // _context.Teachers.Add(teacher);



                /* */

                _context.SaveChanges();
            }
        }