private void View_LoadInfo(object sender, EventArgs e) { using (QuizManagementDataContext dataContext = new QuizManagementDataContext()) { view.Role = (from r in dataContext.Roles where r.roleID == view.RoleID select r.description).FirstOrDefault(); switch (view.RoleID) { case 1: // teacher Teacher teacher = (from tu in dataContext.TeacherUsers join t in dataContext.Teachers on tu.teacherID equals t.teacherID where tu.username == view.Username select t).FirstOrDefault(); view.ID = teacher.teacherID; view.RealName = teacher.name; view.DateOfBirth = (DateTime)teacher.dateOfBirth; break; case 2: // student Student student = (from su in dataContext.StudentUsers join s in dataContext.Students on su.studentID equals s.studentID where su.username == view.Username select s).FirstOrDefault(); view.ID = student.studentID; view.RealName = student.name; view.DateOfBirth = (DateTime)student.dateOfBirth; view.Class = (from c in dataContext.Classes where c.classID == student.classID select c.name).FirstOrDefault(); break; } } }
private void View_Authenticate(object sender, EventArgs e) { view.RoleID = -1; view.IsSuccess = false; using (QuizManagementDataContext dataContext = new QuizManagementDataContext()) { if (dataContext.Users.SingleOrDefault(user => user.username.Equals(view.LoginUser.username)) != null) { // get salted password from database string saltedPassword = (from user in dataContext.Users where user.username == view.LoginUser.username select user.password).FirstOrDefault(); // check password EncryptPassword encryptPassword = new EncryptPassword(); if (encryptPassword.IsPasswordValid(view.LoginUser.password, saltedPassword)) { // get corresponding roleID view.RoleID = (int)dataContext.Users.Where(user => user.username.Equals(view.LoginUser.username)).Select(user => user.roleID).FirstOrDefault(); view.IsSuccess = true; } } } // end using } // end method View_Authenticate
} // end method View_CreateUser private void View_GetRole(object sender, EventArgs e) { using (QuizManagementDataContext dataContext = new QuizManagementDataContext()) { view.ListRole = dataContext.RoleForSignups.ToList(); view.DefaultRole = dataContext.RoleForSignups.SingleOrDefault(r => r.description.Equals("Student")).roleID; } } // end method View_GetRole
private void View_GetPrivilege(object sender, EventArgs e) { string formName = "PersonalInformationView"; using (QuizManagementDataContext dataContext = new QuizManagementDataContext()) { view.Privilege = (from p in dataContext.RoleFormControls where p.roleID == view.RoleID && p.form == formName select p).ToList(); } }
} // end method View_GetRole /// <summary> /// check whether user's info is valid to insert to database /// </summary> private void CheckUserInfo() { isUserCreateable = true; view.ResponseMessage = "Account created successfully!"; using (QuizManagementDataContext dataContext = new QuizManagementDataContext()) { // check whether Username already exist if (dataContext.Users.SingleOrDefault(user => user.username.Equals(view.AddedUser.username)) != null) { isUserCreateable = false; view.ResponseMessage = "Please use other Username!"; } else if (!view.Password.Equals(view.ReEnterPassword)) // check whether password is the same { isUserCreateable = false; view.ResponseMessage = "Two password is not indentical!"; } else // check whether ID exist { if (view.AddedUser.roleID == dataContext.RoleForSignups.SingleOrDefault(r => r.description.Equals("Student")).roleID) // user's role is student { if (dataContext.Students.SingleOrDefault(student => student.studentID.Equals(view.ID)) == null) { isUserCreateable = false; view.ResponseMessage = "Student doesn't exist!"; } else if (dataContext.StudentUsers.SingleOrDefault(studentUser => studentUser.studentID.Equals(view.ID)) != null) { isUserCreateable = false; view.ResponseMessage = "Student already have an account!"; } } else // user's role is teacher { if (dataContext.Teachers.SingleOrDefault(teacher => teacher.teacherID.Equals(view.ID)) == null) { isUserCreateable = false; view.ResponseMessage = "Teacher doesn't exist!"; } else if (dataContext.TeacherUsers.SingleOrDefault(teacherUser => teacherUser.teacherID.Equals(view.ID)) != null) { isUserCreateable = false; view.ResponseMessage = "Teacher already have an account!"; } } // end inner else } // end outer else } // end using } // end method CheckUserInfo
private void View_CreateUser(object sender, EventArgs e) { CheckUserInfo(); if (isUserCreateable) { using (QuizManagementDataContext dataContext = new QuizManagementDataContext()) { // encrypt password EncryptPassword encryptPassword = new EncryptPassword(); view.AddedUser.password = encryptPassword.GetSaltedPassword(view.Password); // insert user to database dataContext.Users.InsertOnSubmit(view.AddedUser); // create suitable object base on user'role // insert to appropriate table if (view.AddedUser.roleID == dataContext.RoleForSignups.SingleOrDefault(r => r.description.Equals("Student")).roleID) { StudentUser studentUser = new StudentUser(); studentUser.username = view.AddedUser.username; studentUser.studentID = view.ID; dataContext.StudentUsers.InsertOnSubmit(studentUser); } else { TeacherUser teacherUser = new TeacherUser(); teacherUser.username = view.AddedUser.username; teacherUser.teacherID = view.ID; dataContext.TeacherUsers.InsertOnSubmit(teacherUser); } dataContext.SubmitChanges(); } // end using } // end outer if } // end method View_CreateUser
private void View_ChangePassword(object sender, EventArgs e) { if (view.Password != view.ReEnterPassword) { view.IsSuccess = false; view.ResponseMessage = "Passwords didn't match. Try again."; } else { using (QuizManagementDataContext dataContext = new QuizManagementDataContext()) { User user = dataContext.Users.FirstOrDefault(u => u.username.Equals(view.Username)); EncryptPassword encryptPassword = new EncryptPassword(); user.password = encryptPassword.GetSaltedPassword(view.Password); dataContext.SubmitChanges(); view.IsSuccess = true; view.ResponseMessage = "Password changed successfully!"; } } } // end method View_ChangePassword
private void View_Save(object sender, EventArgs e) { using (QuizManagementDataContext dataContext = new QuizManagementDataContext()) { switch (view.RoleID) { case 1: // teacher Teacher teacher = dataContext.Teachers.FirstOrDefault(t => t.teacherID.Equals(view.ID)); teacher.name = view.RealName; teacher.dateOfBirth = view.DateOfBirth; dataContext.SubmitChanges(); break; case 2: // student Student student = dataContext.Students.FirstOrDefault(s => s.studentID.Equals(view.ID)); student.name = view.RealName; student.dateOfBirth = view.DateOfBirth; dataContext.SubmitChanges(); break; } } }