public ActionResult Create([Bind(Include = "Id,StudentCode,StudentName,Email,ClassByGrade,Username,Password,Status,IsDeleted")] Student student)
        {
            if (db.Students.Any(x => x.Username == student.Username))
            {
                //if username exists in DB before
                ViewBag.DuplicateError = "Username này đã tồn tại. Vui lòng nhập tên khác";
                return(View(student));
            }
            //if all validation is accepted
            if (ModelState.IsValid)
            {
                //hash password before adding to DB
                student.Password = HashPassword.ComputeSha256Hash(student.Password);
                db.Students.Add(student);
                db.SaveChanges();
                //get student added ID
                int id = db.Students.Max(x => x.Id);
                //add user
                User user = new User()
                {
                    Username  = student.Username,
                    Password  = student.Password,
                    Position  = "Student",
                    StudentId = id
                };
                db.Users.Add(user);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(student));
        }
Ejemplo n.º 2
0
        public ActionResult Create([Bind(Include = "Id,ClassName,ClassCode,Semester,NumberOfDegrees,Status,IsDeleted")] Class @class)
        {
            //ModelState.IsValid cho biet rang khong co loi model nao duoc add vao ModelState
            if (ModelState.IsValid)
            {
                //them moi vao database
                db.Classes.Add(@class);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(@class));
        }
        //check ability to save new student from excel
        public bool SaveStudent(string username, string password, string fullname, string email, string classbygrade, ClassSurveyDbContext db)
        {
            var result = false;

            try
            {
                //save student
                //if students exist before, then not import again
                //just import new student not exists in system
                if (db.Students.Where(x => x.Username.Equals(username)).Count() == 0)
                {
                    var student = new Student();
                    student.Username = username;
                    //hash password before adding
                    student.Password     = HashPassword.ComputeSha256Hash(password);
                    student.StudentCode  = username;
                    student.StudentName  = fullname;
                    student.Email        = email;
                    student.ClassByGrade = classbygrade;
                    db.Students.Add(student);
                    db.SaveChanges();

                    int id = db.Students.Max(x => x.Id);
                    //add new user
                    User user = new User()
                    {
                        Username  = username,
                        Password  = HashPassword.ComputeSha256Hash(password),
                        Position  = "Student",
                        StudentId = id
                    };
                    db.Users.Add(user);
                    db.SaveChanges();
                    result = true;
                }
            }
            catch (Exception)
            {
                throw;
            }
            return(result);
        }
Ejemplo n.º 4
0
        public ActionResult Create([Bind(Include = "Id,Content,Status,IsDeleted")] SurveyQuestion surveyQuestion)
        {
            //1 ham trong Entity Framework
            //Disable create Proxy when create a new context
            //useful in lazy loading

            if (ModelState.IsValid)
            {
                //Tao moi 1 cau hoi trong danh sach cau hoi cua survey va add vao DB
                db.SurveyQuestions.Add(surveyQuestion);
                db.SaveChanges();
                //Xoa bo diem danh gia theo tieu chi cu => Yeu cau sinh vien cap nhat ban danh gia khac voi noi dung moi
                db.Surveys.RemoveRange(db.Surveys.ToList());
                db.SaveChanges();

                return(RedirectToAction("Index", "Surveys", new { area = "Admin" }));
            }

            return(View(surveyQuestion));
        }
Ejemplo n.º 5
0
        //check if we can save new teachers
        public bool SaveTeacher(string username, string password, string name, string email, ClassSurveyDbContext db)
        {
            var result = false;

            try
            {
                //if teacher not exists in system before
                //just add new teachers when they dont exist in system
                if (db.Teachers.Where(x => x.Username.Equals(username)).Count() == 0)
                {
                    var teacher = new Teacher();
                    teacher.Username = username;
                    //hash password before adding
                    teacher.Password    = HashPassword.ComputeSha256Hash(password);
                    teacher.TeacherName = name;
                    teacher.Email       = email;

                    db.Teachers.Add(teacher);
                    db.SaveChanges();

                    int id = db.Teachers.Max(x => x.Id);
                    //add new user
                    User user = new User()
                    {
                        Username  = username,
                        Password  = HashPassword.ComputeSha256Hash(password),
                        Position  = "Teacher",
                        TeacherId = id
                    };
                    db.Users.Add(user);
                    db.SaveChanges();
                    result = true;
                }
            }
            catch (Exception)
            {
                throw;
            }

            return(result);
        }
Ejemplo n.º 6
0
        public ActionResult ShowStudentInfo(FormCollection form)
        {
            //get user from session
            User user = Session["User"] as User;
            //input old password
            string password = form["oldpassword"].ToString();
            //hash old password
            string hashedPassword = HashPassword.ComputeSha256Hash(password);
            //input new password
            string newPassword = HashPassword.ComputeSha256Hash(form["newpassword"]);

            //if user exists
            if (user != null)
            {
                //get student
                Student student = db.Students.FirstOrDefault(s => s.Id == user.StudentId);
                //type old password fail
                if (hashedPassword != user.Password)
                {
                    Response.Write("<script>alert('Mật khẩu cũ không đúng. Vui lòng kiểm tra lại')</script>");
                    return(View(student));
                }
                //rewrite new password fail
                else if (form["newpassword"].ToString().Trim() != form["repassword"].ToString().Trim())
                {
                    Response.Write("<script>alert('Mật khẩu mới không trùng nhau. Vui lòng kiểm tra lại')</script>");
                    return(View(student));
                }
                //get user
                User u = db.Users.FirstOrDefault(us => us.Username == user.Username);
                u.Password       = newPassword;
                student.Password = newPassword;
                db.SaveChanges();
                Response.Write("<script>alert('Thay đổi mật khẩu thành công')</script>");
                return(View(student));
            }
            return(RedirectToAction("Index", "Authentication", new { area = "Authentication" }));
        }
Ejemplo n.º 7
0
        public ActionResult Create([Bind(Include = "Id,TeacherName,Email,Phone,Office,Username,Password,Status,IsDeleted")] Teacher teacher)
        {
            if (ModelState.IsValid)
            {
                //hash password before adding
                teacher.Password = HashPassword.ComputeSha256Hash(teacher.Password);
                db.Teachers.Add(teacher);
                db.SaveChanges();
                int id = db.Teachers.Max(t => t.Id);
                //add new user
                User user = new User()
                {
                    Username  = teacher.Username,
                    Password  = teacher.Password,
                    Position  = "Teacher",
                    TeacherId = id
                };
                db.Users.Add(user);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(teacher));
        }
Ejemplo n.º 8
0
        //get data to above function
        public bool ImportData(out int count, out int successNumber, ExcelPackage excel)
        {
            count         = 0;
            successNumber = 0;
            var result = false;

            try
            {
                //add student, student info in the file starts at column 1 and row 12
                int                  startColumn = 1;
                int                  startRow    = 12;
                ExcelWorksheet       worksheet   = excel.Workbook.Worksheets[1];
                ClassSurveyDbContext db          = new ClassSurveyDbContext();
                object               data        = null;
                //C7: teacherName
                object teacherName = worksheet.Cells[7, 3].Value;
                //C10: ClassName
                object className = worksheet.Cells[10, 3].Value;
                //C9: ClassCode
                object classCode = worksheet.Cells[9, 3].Value;
                //F9: Number of degrees
                object numberOfDegrees = worksheet.Cells[9, 6].Value;

                //add data
                if (!db.Classes.Any(x => x.ClassCode.ToLower().Equals(classCode.ToString().ToLower())))
                {
                    //new class
                    Class @class = new Class();
                    @class.ClassName       = className.ToString();
                    @class.ClassCode       = classCode.ToString();
                    @class.Semester        = 1;
                    @class.NumberOfDegrees = int.Parse(numberOfDegrees.ToString());
                    db.Classes.Add(@class);
                    db.SaveChanges();

                    //class Id
                    int classId = db.Classes.Max(c => c.Id);
                    //teacher Id
                    int teacherId = db.Teachers.FirstOrDefault(t => t.TeacherName.ToLower()
                                                               .Equals(teacherName.ToString().ToLower())).Id;

                    do
                    {
                        data = worksheet.Cells[startRow, startColumn].Value;
                        //get student name
                        object studentName = worksheet.Cells[startRow, startColumn + 2].Value;
                        //get student code
                        object studentCode = worksheet.Cells[startRow, startColumn + 1].Value;
                        //get class by grade
                        object classByGrade = worksheet.Cells[startRow, startColumn + 4].Value;
                        //get username
                        string username = worksheet.Cells[startRow, startColumn + 1].Value.ToString();
                        startRow++;
                        //if data exists
                        if (data != null)
                        {
                            //get students in that class
                            count++;
                            Student student = db.Students.FirstOrDefault(s => s.Username.Trim()
                                                                         .Equals(username.Trim()));
                            if (student == null)
                            {
                                continue;
                            }
                            if (student.StudentCode == null)
                            {
                                student.StudentCode = username;
                            }

                            StudentClass studentClass = new StudentClass();
                            studentClass.StudentId = student.Id;
                            studentClass.TeacherId = teacherId;
                            studentClass.ClassId   = classId;
                            db.StudentClasses.Add(studentClass);
                            db.SaveChanges();
                            successNumber++;
                            result = true;
                        }
                    } while (data != null);
                }
            }
            catch (Exception)
            {
            }

            return(result);
        }