/// <summary> /// Constructor /// </summary> /// <param name="context"></param> public CustomRoleStore(GradeBookContext context) : base(context) { }
public IHttpActionResult DeleteAllData() { Dictionary <string, int> report = new Dictionary <string, int>(); using (var ctx = new GradeBookContext()) { var finalGrades = ctx.FinalGrades; report["FinalGrades"] = finalGrades.Count(); foreach (var finalGrade in finalGrades) { ctx.FinalGrades.Remove(finalGrade); } var grades = ctx.Grades; report["Grades"] = grades.Count(); foreach (var grade in grades) { ctx.Grades.Remove(grade); } var takings = ctx.Takings; report["Takings"] = takings.Count(); foreach (var taking in takings) { ctx.Takings.Remove(taking); } var studentParents = ctx.StudentParents; report["StudentParents"] = studentParents.Count(); foreach (var studentParent in studentParents) { ctx.StudentParents.Remove(studentParent); } // --- PARENTS var parents = ctx.Users.OfType <ParentUser>().ToList(); report["Parents"] = parents.Count(); foreach (var parent in parents) { var roles = ctx.Set <CustomUserRole>().Where(cur => cur.UserId == parent.Id).ToList(); if (roles.Count != 0) { foreach (var role in roles) { ctx.Set <CustomUserRole>().Remove(role); } } ctx.Users.Remove(parent); } var students = ctx.Users.OfType <StudentUser>().ToList(); report["Students"] = students.Count(); foreach (var student in students) { var roles = ctx.Set <CustomUserRole>().Where(cur => cur.UserId == student.Id).ToList(); if (roles.Count != 0) { foreach (var role in roles) { ctx.Set <CustomUserRole>().Remove(role); } } // public async Task<IdentityResult> DeleteUser(int userId) ctx.Users.Remove(student); } // TODO remove ClassRooms, Programs, Teachings, Courses and Teachers // --- PROGRAMS var programs = ctx.Programs.ToList(); report["Programs"] = programs.Count(); foreach (var program in programs) { ctx.Programs.Remove(program); } // --- CLASSROOMS var classRooms = ctx.ClassRooms.ToList(); report["ClassRooms"] = classRooms.Count(); foreach (var classRoom in classRooms) { ctx.ClassRooms.Remove(classRoom); } // --- TEACHINGS var teachings = ctx.TeachingAssignments.ToList(); report["Teachings"] = teachings.Count(); foreach (var teaching in teachings) { ctx.TeachingAssignments.Remove(teaching); } // --- COURSES var courses = ctx.Courses.ToList(); report["Courses"] = courses.Count(); foreach (var course in courses) { ctx.Courses.Remove(course); } // --- TEACHERS var teachers = ctx.Users.OfType <TeacherUser>().ToList(); report["Teachers"] = teachers.Count(); foreach (var teacher in teachers) { var roles = ctx.Set <CustomUserRole>().Where(cur => cur.UserId == teacher.Id).ToList(); if (roles.Count != 0) { foreach (var role in roles) { ctx.Set <CustomUserRole>().Remove(role); } } ctx.Users.Remove(teacher); } ctx.SaveChanges(); } return(Ok(report)); }
/// <summary> /// Constructor /// </summary> /// <param name="context"></param> public CustomUserStore(GradeBookContext context) : base(context) { }
public IHttpActionResult FillDatabase() { Dictionary <string, int> report = new Dictionary <string, int>(); using (var context = new GradeBookContext()) { try { UserManager <GradeBookUser, int> _userManager = new UserManager <GradeBookUser, int>( new UserStore <GradeBookUser, CustomRole, int, CustomUserLogin, CustomUserRole, CustomUserClaim>(context)); RoleManager <CustomRole, int> _roleManager = new RoleManager <CustomRole, int>(new RoleStore <CustomRole, int, CustomUserRole>(context)); //#region Roles //CustomRole adminRole = new CustomRole() { Name = "admins" }; //CustomRole studentRole = new CustomRole() { Name = "students" }; //CustomRole teacherRole = new CustomRole() { Name = "teachers" }; //CustomRole parentRole = new CustomRole() { Name = "parents" }; //_roleManager.Create(adminRole); //_roleManager.Create(studentRole); //_roleManager.Create(teacherRole); //_roleManager.Create(parentRole); //#endregion #region Roles CustomRole adminRole = _roleManager.FindByName("admins"); CustomRole studentRole = _roleManager.FindByName("students"); CustomRole teacherRole = _roleManager.FindByName("teachers"); CustomRole parentRole = _roleManager.FindByName("parents"); #endregion //#region Admins //List<AdminUser> admins = new List<AdminUser>(); //admins.Add(new AdminUser() { UserName = "******", FirstName = "Pera", LastName = "Peric", Email = "*****@*****.**", Gender = "m", PhoneNumber = "0604546321" }); //admins.Add(new AdminUser() { UserName = "******", FirstName = "Milan", LastName = "Milic", Email = "*****@*****.**", Gender = "m", PhoneNumber = "0604546321" }); //foreach (var admin in admins) //{ // _userManager.Create(admin, "password"); // _userManager.AddToRole(admin.Id, "admins"); //} //#endregion #region Courses List <Course> courses = new List <Course>(); courses.Add(new Course() { Name = "Mathematics" }); courses.Add(new Course() { Name = "Physics" }); courses.Add(new Course() { Name = "English language" }); courses.Add(new Course() { Name = "German language" }); courses.Add(new Course() { Name = "Serbian language and literature" }); context.Courses.AddRange(courses); context.SaveChanges(); #endregion #region Teachers List <TeacherUser> teachers = new List <TeacherUser>(); teachers.Add(new TeacherUser() { UserName = "******", FirstName = "Rada", LastName = "Radic", Email = "*****@*****.**", Gender = "f", PhoneNumber = "063154845", Title = "Ms", Degree = "MMathPhys" }); teachers.Add(new TeacherUser() { UserName = "******", FirstName = "Toma", LastName = "Tomic", Email = "*****@*****.**", Gender = "m", PhoneNumber = "064542365", Title = "Mr", Degree = "MLit" }); teachers.Add(new TeacherUser() { UserName = "******", FirstName = "Rade", LastName = "Radic", Email = "*****@*****.**", Gender = "m", PhoneNumber = "063256456", Title = "Mr", Degree = "MLit" }); teachers.Add(new TeacherUser() { UserName = "******", FirstName = "Iva", LastName = "Ivic", Email = "*****@*****.**", Gender = "f", PhoneNumber = "021546895", Title = "Mrs", Degree = "MMathPhys" }); foreach (var teacher in teachers) { _userManager.Create(teacher, "password"); _userManager.AddToRole(teacher.Id, "teachers"); } #endregion #region Teachings List <Teaching> teachings = new List <Teaching>(); teachings.Add(new Teaching() { Teacher = teachers[0], Course = courses[0] }); teachings.Add(new Teaching() { Teacher = teachers[0], Course = courses[1] }); teachings.Add(new Teaching() { Teacher = teachers[1], Course = courses[4] }); teachings.Add(new Teaching() { Teacher = teachers[1], Course = courses[2] }); teachings.Add(new Teaching() { Teacher = teachers[2], Course = courses[4] }); teachings.Add(new Teaching() { Teacher = teachers[2], Course = courses[3] }); teachings.Add(new Teaching() { Teacher = teachers[3], Course = courses[0] }); teachings.Add(new Teaching() { Teacher = teachers[3], Course = courses[1] }); context.TeachingAssignments.AddRange(teachings); context.SaveChanges(); #endregion #region ClassRooms List <ClassRoom> classRooms = new List <ClassRoom>(); classRooms.Add(new ClassRoom() { Name = "5-A", ClassGrade = 5 }); classRooms.Add(new ClassRoom() { Name = "5-B", ClassGrade = 5 }); classRooms.Add(new ClassRoom() { Name = "6-A", ClassGrade = 6 }); classRooms.Add(new ClassRoom() { Name = "6-B", ClassGrade = 6 }); context.ClassRooms.AddRange(classRooms); context.SaveChanges(); #endregion #region Programs List <Program> programs = new List <Program>(); programs.Add(new Program() { Teaching = teachings[0], ClassRoom = classRooms[0], WeeklyHours = 5, Course = courses[0] }); programs.Add(new Program() { Teaching = teachings[7], ClassRoom = classRooms[0], WeeklyHours = 3, Course = courses[1] }); programs.Add(new Program() { Teaching = teachings[2], ClassRoom = classRooms[0], WeeklyHours = 5, Course = courses[4] }); programs.Add(new Program() { Teaching = teachings[3], ClassRoom = classRooms[0], WeeklyHours = 3, Course = courses[2] }); programs.Add(new Program() { Teaching = teachings[6], ClassRoom = classRooms[1], WeeklyHours = 5, Course = courses[0] }); programs.Add(new Program() { Teaching = teachings[1], ClassRoom = classRooms[1], WeeklyHours = 3, Course = courses[1] }); programs.Add(new Program() { Teaching = teachings[2], ClassRoom = classRooms[1], WeeklyHours = 5, Course = courses[4] }); programs.Add(new Program() { Teaching = teachings[5], ClassRoom = classRooms[1], WeeklyHours = 3, Course = courses[3] }); programs.Add(new Program() { Teaching = teachings[6], ClassRoom = classRooms[2], WeeklyHours = 4, Course = courses[0] }); programs.Add(new Program() { Teaching = teachings[7], ClassRoom = classRooms[2], WeeklyHours = 4, Course = courses[1] }); programs.Add(new Program() { Teaching = teachings[4], ClassRoom = classRooms[2], WeeklyHours = 4, Course = courses[4] }); programs.Add(new Program() { Teaching = teachings[3], ClassRoom = classRooms[2], WeeklyHours = 4, Course = courses[2] }); programs.Add(new Program() { Teaching = teachings[0], ClassRoom = classRooms[3], WeeklyHours = 4, Course = courses[0] }); programs.Add(new Program() { Teaching = teachings[1], ClassRoom = classRooms[3], WeeklyHours = 4, Course = courses[1] }); programs.Add(new Program() { Teaching = teachings[4], ClassRoom = classRooms[3], WeeklyHours = 4, Course = courses[4] }); programs.Add(new Program() { Teaching = teachings[5], ClassRoom = classRooms[3], WeeklyHours = 4, Course = courses[3] }); context.Programs.AddRange(programs); context.SaveChanges(); #endregion #region Students List <StudentUser> students = new List <StudentUser>(); students.Add(new StudentUser() { UserName = "******", FirstName = "Zoran", LastName = "Zoric", Email = "*****@*****.**", Gender = "m", PhoneNumber = "064548458", PlaceOfBirth = "Novi Sad", DateOfBirth = DateTime.Parse("2010-05-23"), ClassRoom = classRooms[0] }); students.Add(new StudentUser() { UserName = "******", FirstName = "Zorica", LastName = "Zoric", Email = "*****@*****.**", Gender = "f", PhoneNumber = "063565485", PlaceOfBirth = "Novi Sad", DateOfBirth = DateTime.Parse("2010-05-23"), ClassRoom = classRooms[0] }); students.Add(new StudentUser() { UserName = "******", FirstName = "Dragan", LastName = "Kljajic", Email = "*****@*****.**", Gender = "m", PhoneNumber = "02365465", PlaceOfBirth = "Becej", DateOfBirth = DateTime.Parse("2010-01-23"), ClassRoom = classRooms[1] }); students.Add(new StudentUser() { UserName = "******", FirstName = "Dragana", LastName = "Mihic", Email = "*****@*****.**", Gender = "f", PhoneNumber = "062456895", PlaceOfBirth = "Temerin", DateOfBirth = DateTime.Parse("2010-04-12"), ClassRoom = classRooms[1] }); students.Add(new StudentUser() { UserName = "******", FirstName = "Milan", LastName = "Mihic", Email = "*****@*****.**", Gender = "m", PhoneNumber = "06548575", PlaceOfBirth = "Rumenka", DateOfBirth = DateTime.Parse("2009-11-05"), ClassRoom = classRooms[2] }); students.Add(new StudentUser() { UserName = "******", FirstName = "Milana", LastName = "Ivic", Email = "*****@*****.**", Gender = "f", PhoneNumber = "02365847", PlaceOfBirth = "Novi Sad", DateOfBirth = DateTime.Parse("2009-08-07"), ClassRoom = classRooms[2] }); students.Add(new StudentUser() { UserName = "******", FirstName = "Ivan", LastName = "Mihic", Email = "*****@*****.**", Gender = "m", PhoneNumber = "01254822", PlaceOfBirth = "Novi Sad", DateOfBirth = DateTime.Parse("2009-03-30"), ClassRoom = classRooms[3] }); students.Add(new StudentUser() { UserName = "******", FirstName = "Ivana", LastName = "Zoric", Email = "*****@*****.**", Gender = "f", PhoneNumber = "01525465", PlaceOfBirth = "Beograd", DateOfBirth = DateTime.Parse("2009-02-28"), ClassRoom = classRooms[3] }); foreach (var student in students) { _userManager.Create(student, "password"); _userManager.AddToRole(student.Id, "teachers"); } #endregion #region Takings List <Taking> takings = new List <Taking>(); takings.Add(new Taking() { Program = programs[0], Student = students[0] }); takings.Add(new Taking() { Program = programs[1], Student = students[0] }); takings.Add(new Taking() { Program = programs[2], Student = students[0] }); takings.Add(new Taking() { Program = programs[3], Student = students[0] }); takings.Add(new Taking() { Program = programs[0], Student = students[1] }); takings.Add(new Taking() { Program = programs[1], Student = students[1] }); takings.Add(new Taking() { Program = programs[2], Student = students[1] }); takings.Add(new Taking() { Program = programs[3], Student = students[1] }); takings.Add(new Taking() { Program = programs[4], Student = students[2] }); takings.Add(new Taking() { Program = programs[5], Student = students[2] }); takings.Add(new Taking() { Program = programs[6], Student = students[2] }); takings.Add(new Taking() { Program = programs[7], Student = students[2] }); takings.Add(new Taking() { Program = programs[4], Student = students[3] }); takings.Add(new Taking() { Program = programs[5], Student = students[3] }); takings.Add(new Taking() { Program = programs[6], Student = students[3] }); takings.Add(new Taking() { Program = programs[7], Student = students[3] }); takings.Add(new Taking() { Program = programs[8], Student = students[4] }); takings.Add(new Taking() { Program = programs[9], Student = students[4] }); takings.Add(new Taking() { Program = programs[10], Student = students[4] }); takings.Add(new Taking() { Program = programs[11], Student = students[4] }); takings.Add(new Taking() { Program = programs[8], Student = students[5] }); takings.Add(new Taking() { Program = programs[9], Student = students[5] }); takings.Add(new Taking() { Program = programs[10], Student = students[5] }); takings.Add(new Taking() { Program = programs[11], Student = students[5] }); takings.Add(new Taking() { Program = programs[12], Student = students[6] }); takings.Add(new Taking() { Program = programs[13], Student = students[6] }); takings.Add(new Taking() { Program = programs[14], Student = students[6] }); takings.Add(new Taking() { Program = programs[15], Student = students[6] }); takings.Add(new Taking() { Program = programs[12], Student = students[7] }); takings.Add(new Taking() { Program = programs[13], Student = students[7] }); takings.Add(new Taking() { Program = programs[14], Student = students[7] }); takings.Add(new Taking() { Program = programs[15], Student = students[7] }); context.Takings.AddRange(takings); context.SaveChanges(); #endregion #region Parents List <ParentUser> parents = new List <ParentUser>(); parents.Add(new ParentUser() { UserName = "******", FirstName = "Milica", LastName = "Mihic", Email = "*****@*****.**", Gender = "f", PhoneNumber = "065326584" }); parents.Add(new ParentUser() { UserName = "******", FirstName = "Marko", LastName = "Zoric", Email = "*****@*****.**", Gender = "m", PhoneNumber = "023568954" }); parents.Add(new ParentUser() { UserName = "******", FirstName = "Ana", LastName = "Kljajic", Email = "*****@*****.**", Gender = "f", PhoneNumber = "063568595" }); parents.Add(new ParentUser() { UserName = "******", FirstName = "Eva", LastName = "Zoric", Email = "*****@*****.**", Gender = "f", PhoneNumber = "024568958" }); parents.Add(new ParentUser() { UserName = "******", FirstName = "Dusan", LastName = "Mihic", Email = "*****@*****.**", Gender = "m", PhoneNumber = "062458785" }); foreach (var parent in parents) { _userManager.Create(parent, "password"); _userManager.AddToRole(parent.Id, "parents"); } #endregion #region StudentParents List <StudentParent> studentParents = new List <StudentParent>(); studentParents.Add(new StudentParent() { Student = students[0], Parent = parents[1] }); studentParents.Add(new StudentParent() { Student = students[0], Parent = parents[3] }); studentParents.Add(new StudentParent() { Student = students[1], Parent = parents[1] }); studentParents.Add(new StudentParent() { Student = students[1], Parent = parents[3] }); studentParents.Add(new StudentParent() { Student = students[2], Parent = parents[0] }); studentParents.Add(new StudentParent() { Student = students[2], Parent = parents[4] }); studentParents.Add(new StudentParent() { Student = students[3], Parent = parents[2] }); studentParents.Add(new StudentParent() { Student = students[3], Parent = parents[4] }); studentParents.Add(new StudentParent() { Student = students[4], Parent = parents[0] }); studentParents.Add(new StudentParent() { Student = students[4], Parent = parents[4] }); studentParents.Add(new StudentParent() { Student = students[5], Parent = parents[2] }); studentParents.Add(new StudentParent() { Student = students[6], Parent = parents[0] }); studentParents.Add(new StudentParent() { Student = students[6], Parent = parents[4] }); studentParents.Add(new StudentParent() { Student = students[7], Parent = parents[3] }); studentParents.Add(new StudentParent() { Student = students[7], Parent = parents[4] }); context.StudentParents.AddRange(studentParents); context.SaveChanges(); #endregion #region Grades List <Grade> grades = new List <Grade>(); grades.Add(new Grade() { Taking = takings[1], GradePoint = 4, Assigned = new DateTime(2019, 9, 25), SchoolTerm = 1, Notes = "Algebra" }); grades.Add(new Grade() { Taking = takings[1], GradePoint = 4, Assigned = new DateTime(2019, 10, 15), SchoolTerm = 1, Notes = "Arithmetics" }); grades.Add(new Grade() { Taking = takings[1], GradePoint = 5, Assigned = new DateTime(2019, 11, 10), SchoolTerm = 1, Notes = "" }); Random random = new Random(100); int taking = 0; int grade = 0; int month = 0; int day = 0; for (int i = 0; i < 200; i++) { taking = random.Next(32); grade = random.Next(1, 6); month = random.Next(9, 13); day = random.Next(1, 31); grades.Add(new Grade() { Taking = takings[taking], GradePoint = grade, Assigned = new DateTime(2019, month, day), SchoolTerm = 1, Notes = "" }); } context.Grades.AddRange(grades); context.SaveChanges(); #endregion } catch (SqlException ex) { throw ex; } catch (Exception ex) { throw ex; } } return(Ok(report)); }