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); }
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)); }
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(); } }