public override void OnActionExecuting(ActionExecutingContext filterContext) { base.OnActionExecuting(filterContext); // Lấy user hiện tại từ session User user = HttpContext.Current.Session["user"] as User; // Kiểm tra xem user có tồn tại không if (user == null) { // Chuyển hướng đến trang đăng nhập filterContext.Result = new RedirectResult("/dang-nhap"); return; } // Lấy token của trang hiện tại var dataTokens = HttpContext.Current.Request.RequestContext.RouteData.DataTokens; // Lấy dữ liệu router var routeValues = HttpContext.Current.Request.RequestContext.RouteData.Values; // Lấy action của router string action = routeValues.ContainsKey("action") ? (string)routeValues["action"] : string.Empty; // Lấy controller của router string controller = routeValues.ContainsKey("controller") ? (string)routeValues["controller"] : string.Empty; // Lấy area của router string area = dataTokens.ContainsKey("area") ? (string)dataTokens["area"] : string.Empty; // Khởi tạo DBcontext để thao tác csdl UetSurveyDbContext db = new UetSurveyDbContext(); // Kiểm tra các action, controller, area có hợp lệ không bool check = db.Roles.Any(s => s.Position == user.Position && s.Area == area && s.Controller == controller && s.Action == action); // Nếu không hợp lệ thì điều hướng tới trang error if (!check) { filterContext.Result = new RedirectResult("/error"); return; } }
// Import dữ liệu từ file public bool ImportData(out int count, ExcelPackage package) { count = 0; var result = false; try { // Bắt đầu từ cột 1 int startColumn = 1; // Bắt đầu từ dòng 2 int startRow = 2; // Lấy sheet 1 của file excel ExcelWorksheet workSheet = package.Workbook.Worksheets[1]; object data = null; // Khởi tạo đối tượng DBcontext và thao tác csdl UetSurveyDbContext db = new UetSurveyDbContext(); do { // Lấy các dữ liệu của một dòng excel data = workSheet.Cells[startRow, startColumn].Value; object userName = workSheet.Cells[startRow, startColumn + 1].Value; object passWord = workSheet.Cells[startRow, startColumn + 2].Value; object fullName = workSheet.Cells[startRow, startColumn + 3].Value; object email = workSheet.Cells[startRow, startColumn + 4].Value; object checkColumn = workSheet.Cells[startRow, startColumn + 5].Value; if (checkColumn != null) { throw new Exception("error"); } // Kiểm tra xem đã cuối danh sách chưa if (data != null) { var isSuccess = SaveTeacher(userName.ToString(), passWord.ToString(), fullName.ToString(), email.ToString(), db); if (isSuccess) { count++; result = true; } } startRow++; } while (data != null); } catch (Exception) { } return(result); }
// Import data public bool ImportData(out int count, ExcelPackage package) { count = 0; var result = false; try { // Bắt đầu từ cột 1 int startColumn = 1; // Bắt đầu từ hàng 2 int startRow = 2; // Lấy sheet 1 của file excel ExcelWorksheet workSheet = package.Workbook.Worksheets[1]; object data = null; // Khởi tạo đối tượng context để thao tác csdl UetSurveyDbContext db = new UetSurveyDbContext(); do { // Lấy các giá trị của từng hàng data = workSheet.Cells[startRow, startColumn].Value; object userName = workSheet.Cells[startRow, startColumn + 1].Value; object passWord = workSheet.Cells[startRow, startColumn + 2].Value; object fullName = workSheet.Cells[startRow, startColumn + 3].Value; object email = workSheet.Cells[startRow, startColumn + 4].Value; object course = workSheet.Cells[startRow, startColumn + 5].Value; // Kiểm tra xem đã cuối danh sách excel chưa if (data != null) { // Truyền dữ liệu một sinh viên vào lưu vào DB var isSuccess = SaveStudent(userName.ToString(), passWord.ToString(), fullName.ToString(), email.ToString(), course.ToString(), db); if (isSuccess) { count++; result = true; } } startRow++; } while (data != null); } catch (Exception) { } return(result); }
// Import dữ liệu public bool ImportData(out int count, out int countSuccess, ExcelPackage package) { count = 0; countSuccess = 0; var result = false; try { // Bắt đầu từ cột 1 int startColumn = 1; // Bắt đầu từ hàng 12 int startRow = 12; // Lấy sheet 1 của file excel ExcelWorksheet workSheet = package.Workbook.Worksheets[1]; object data = null; // Khởi tạo DBcontext đẻ thao tác csdl UetSurveyDbContext db = new UetSurveyDbContext(); // Lấy các thông tin của học phần object teacherName = workSheet.Cells[7, 3].Value; object subjectName = workSheet.Cells[10, 3].Value; object subjectCode = workSheet.Cells[9, 3].Value; object classRoom = workSheet.Cells[8, 6].Value; object creditNumber = workSheet.Cells[9, 6].Value; object time = workSheet.Cells[8, 3].Value; // Kiểm tra xem học phần đó đã tồn tại chưa if (!db.Subjects.Any(x => x.SubjectCode.ToLower().Equals(subjectCode.ToString().ToLower()))) { // Khởi tạo học phần và gán các giá trị cho thuộc tính Subject sub = new Subject(); sub.Name = subjectName.ToString(); sub.SubjectCode = subjectCode.ToString(); sub.ClassRoom = classRoom.ToString(); sub.CreditNumber = int.Parse(creditNumber.ToString()); sub.TimeTeach = time.ToString(); // lưu học phần vào DB db.Subjects.Add(sub); db.SaveChanges(); // Lấy id của học phần vừa thêm int subID = db.Subjects.Max(x => x.SubjectID); // Lấy ID của giáo viên int teacherID = db.Teachers.FirstOrDefault(x => x.Name.ToLower().Equals(teacherName.ToString().ToLower())).TeacherID; do { data = workSheet.Cells[startRow, startColumn].Value; string userName = workSheet.Cells[startRow, startColumn + 1].Value.ToString(); object dob = workSheet.Cells[startRow, startColumn + 3].Value; startRow++; // Kiểm tra xem đã cuối danh sách chưa if (data != null) { count++; // Lấy ra sinh viên có username bằng username trong excel Student stu = db.Students.FirstOrDefault(x => x.UserName.Trim().Equals(userName.Trim())); if (stu == null) { continue; } // Kiểm tra thông tin ngày sinh và cập nhật cho sinh viên if (stu.DateOfBirth == null) { stu.DateOfBirth = DateTime.ParseExact(dob.ToString(), "dd/MM/yyyy", CultureInfo.InvariantCulture); } // Kiểm tra mã sinh viên và cập nhật cho sinh viên if (stu.StudentCode == null) { stu.StudentCode = userName; } // Khởi tạo đối tượng sinh viên chi tiết theo môn học StudentDetail stuDetail = new StudentDetail(); stuDetail.StudentID = stu.StudentID; stuDetail.SubjectID = subID; stuDetail.TeacherID = teacherID; // Lưu một sinh viên vào danh sách học phần db.StudentDetails.Add(stuDetail); db.SaveChanges(); countSuccess++; result = true; } } while (data != null); } } catch (Exception) { } return(result); }
// Lưu từng giảng viên vào DB public bool SaveTeacher(string userName, string passWord, string fullName, string email, UetSurveyDbContext db) { var result = false; try { // Kiểm tra giảng viên đã tồn tại chưa if (!db.Teachers.Any(x => x.UserName.Equals(userName))) { // Khởi tạo giảng viên và gán giá trị cho các thuộc tính Teacher teacher = new Teacher(); teacher.UserName = userName; teacher.PassWord = passWord; teacher.Name = fullName; teacher.Email = email; // Lưu giảng viên vào DB db.Teachers.Add(teacher); db.SaveChanges(); // Lấy mã giảng viên vừa tạo int teacherid = db.Teachers.Max(x => x.TeacherID); // Khởi tạo user và gán giá trị cho các thuộc tính User user = new User() { UserName = userName, PassWord = passWord, Position = "Teacher", TeacherID = teacherid }; // Thêm user vào DB db.Users.Add(user); db.SaveChanges(); result = true; } } catch (Exception) { } return(result); }
// Lưu mỗi sinh viên vào DB public bool SaveStudent(string userName, string passWord, string fullName, string email, string course, UetSurveyDbContext db) { var result = false; try { // Kiểm tra xem sinh viên đã tồn tại chưa if (!db.Students.Any(x => x.UserName.Equals(userName))) { // Khởi tạo sinh viên và gán dữ liệu rồi lưu vào db var stu = new Student(); stu.UserName = userName; stu.PassWord = passWord; stu.StudentCode = userName; stu.Name = fullName; stu.Email = email; stu.Course = course; db.Students.Add(stu); db.SaveChanges(); // Lấy Id sinh viên vừa tạo int studentid = db.Students.Max(x => x.StudentID); // Khởi tạo user rồi gán giá trị sinh viên vừa lưu User user = new User() { UserName = userName, PassWord = passWord, Position = "Student", StudentID = studentid }; db.Users.Add(user); db.SaveChanges(); result = true; } } catch (Exception) { } return(result); }
// Import dữ liệu public bool ImportData(out int count, ExcelPackage package) { count = 0; var result = false; try { // Bắt đầu từ cột 1 int startColumn = 1; // Bắt đầu từ hàng 12 int startRow = 12; // Lấy sheet 1 của file excel ExcelWorksheet workSheet = package.Workbook.Worksheets[1]; object data = null; // Khởi tạo DBcontext đẻ thao tác csdl UetSurveyDbContext db = new UetSurveyDbContext(); // Lấy các thông tin của học phần object teacherName = workSheet.Cells[7, 3].Value; object subjectName = workSheet.Cells[10, 3].Value; object subjectCode = workSheet.Cells[9, 3].Value; object classRoom = workSheet.Cells[8, 6].Value; object creditNumber = workSheet.Cells[9, 6].Value; object time = workSheet.Cells[8, 3].Value; // Kiểm tra xem học phần đó đã tồn tại chưa if (!SubjectBusinessModel.CheckBySubjectCode(subjectCode.ToString())) { int creditnumber = int.Parse(creditNumber.ToString()); // Tạo và lưu một môn học SubjectBusinessModel.CreateAndSaveSubject(subjectName.ToString(), subjectCode.ToString(), classRoom.ToString(), creditnumber, time.ToString()); // Lấy id của học phần vừa thêm int subID = SubjectBusinessModel.GetLastId(); // Lấy ID của giáo viên int teacherID = TeacherBusinessModel.GetIdTeacherByName(teacherName.ToString()); do { data = workSheet.Cells[startRow, startColumn].Value; string userName = workSheet.Cells[startRow, startColumn + 1].Value.ToString(); object dob = workSheet.Cells[startRow, startColumn + 3].Value; // Kiểm tra xem đã cuối danh sách chưa if (data != null) { // Lấy ra sinh viên có username bằng username trong excel Student stu = StudentBusinessModel.GetStudentByUserName(userName); // Kiểm tra thông tin ngày sinh và cập nhật cho sinh viên if (stu.DateOfBirth == null) { stu.DateOfBirth = DateTime.Parse(dob.ToString()); } // Kiểm tra mã sinh viên và cập nhật cho sinh viên if (stu.StudentCode == null) { stu.StudentCode = userName; } // tạo và lưu một studentdetail StudentDetailBusinessModel.CreateAndSaveStudentDetail(stu.StudentID, subID, teacherID); result = true; } startRow++; } while (data != null); } } catch (Exception x) { } return(result); }