public ActionResult EditStudent([Bind(Include = "Id,Email,PasswordHash,SecurityStamp,PhoneNumber,UserName,Name")] AspNetUser aspNetUser) { var dbTransaction = db.Database.BeginTransaction(); try { if (ModelState.IsValid) { ApplicationDbContext context = new ApplicationDbContext(); IEnumerable <string> selectedsubjects = Request.Form["subjects"].Split(','); AspNetStudent_Subject stu_sub_rem = new AspNetStudent_Subject(); do { stu_sub_rem = db.AspNetStudent_Subject.FirstOrDefault(x => x.StudentID == aspNetUser.Id); try { db.AspNetStudent_Subject.Remove(stu_sub_rem); var student = db.AspNetStudents.Where(x => x.StudentID == aspNetUser.Id).Select(x => x).FirstOrDefault(); student.Nationality = Request.Form["Nationality"]; student.BirthDate = Request.Form["BirthDate"]; student.Religion = Request.Form["Religion"]; student.Gender = Request.Form["Gender"]; student.SchoolName = Request.Form["SchoolName"]; db.SaveChanges(); } catch { } }while (stu_sub_rem != null); foreach (var item in selectedsubjects) { AspNetStudent_Subject stu_sub = new AspNetStudent_Subject(); stu_sub.StudentID = aspNetUser.Id; stu_sub.SubjectID = Convert.ToInt32(item); db.AspNetStudent_Subject.Add(stu_sub); db.SaveChanges(); } db.Entry(aspNetUser).State = EntityState.Modified; db.SaveChanges(); } dbTransaction.Commit(); return(RedirectToAction("StudentsIndex")); } catch (Exception) { dbTransaction.Dispose(); } return(View("StudentsIndex")); }
public async Task <ActionResult> StudentRegister(RegisterViewModel model) { if (ModelState.IsValid) { ApplicationDbContext context = new ApplicationDbContext(); IEnumerable <string> selectedsubjects = Request.Form["subjects"].Split(','); var user = new ApplicationUser { UserName = model.UserName, Email = model.Email, Name = model.Name }; var result = await UserManager.CreateAsync(user, model.Password); var dbTransaction = db.Database.BeginTransaction(); try { if (result.Succeeded) { var roleStore = new RoleStore <IdentityRole>(context); var roleManager = new RoleManager <IdentityRole>(roleStore); var userStore = new UserStore <ApplicationUser>(context); var userManager = new UserManager <ApplicationUser>(userStore); userManager.AddToRole(user.Id, "Student"); foreach (var item in selectedsubjects) { AspNetStudent_Subject stu_sub = new AspNetStudent_Subject(); stu_sub.StudentID = user.Id; stu_sub.SubjectID = Convert.ToInt32(item); db.AspNetStudent_Subject.Add(stu_sub); db.SaveChanges(); } return(RedirectToAction("Index", "Home")); } dbTransaction.Commit(); } catch (Exception) { dbTransaction.Dispose(); } AddErrors(result); } // If we got this far, something failed, redisplay form return(View(model)); }
public async Task <ActionResult> StudentfromFile(RegisterViewModel model) { // if (ModelState.IsValid) var dbTransaction = db.Database.BeginTransaction(); try { HttpPostedFileBase file = Request.Files["students"]; if ((file != null) && (file.ContentLength > 0) && !string.IsNullOrEmpty(file.FileName)) { string fileName = file.FileName; string fileContentType = file.ContentType; byte[] fileBytes = new byte[file.ContentLength]; var data = file.InputStream.Read(fileBytes, 0, Convert.ToInt32(file.ContentLength)); } var studentList = new List <RegisterViewModel>(); using (var package = new ExcelPackage(file.InputStream)) { var currentSheet = package.Workbook.Worksheets; var workSheet = currentSheet.First(); var noOfCol = workSheet.Dimension.End.Column; var noOfRow = workSheet.Dimension.End.Row; for (int rowIterator = 2; rowIterator <= noOfRow; rowIterator++) { var student = new RegisterViewModel(); student.Email = workSheet.Cells[rowIterator, 1].Value.ToString(); student.Name = workSheet.Cells[rowIterator, 2].Value.ToString(); student.UserName = workSheet.Cells[rowIterator, 3].Value.ToString(); student.Password = workSheet.Cells[rowIterator, 4].Value.ToString(); student.ConfirmPassword = workSheet.Cells[rowIterator, 5].Value.ToString(); var checkUserName = await UserManager.FindByNameAsync(student.UserName); if (checkUserName != null) { var localTeacher = new ApplicationUser { UserName = student.UserName, Email = student.Email, Name = student.Name }; var localresult = await UserManager.CreateAsync(localTeacher, student.Password); AddErrors(localresult); return(View("StudentRegister", model)); } else { studentList.Add(student); } } } ViewBag.ClassID = new SelectList(db.AspNetClasses, "Id", "ClassName"); ApplicationDbContext context = new ApplicationDbContext(); int rowIteratortemp = 2; foreach (var item in studentList) { var user = new ApplicationUser { UserName = item.UserName, Email = item.Email, Name = item.Name }; var result = await UserManager.CreateAsync(user, item.Password); if (result.Succeeded) { var roleStore = new RoleStore <IdentityRole>(context); var roleManager = new RoleManager <IdentityRole>(roleStore); var userStore = new UserStore <ApplicationUser>(context); var userManager = new UserManager <ApplicationUser>(userStore); userManager.AddToRole(user.Id, "Student"); using (var package = new ExcelPackage(file.InputStream)) { var currentSheet = package.Workbook.Worksheets; var workSheet = currentSheet.First(); var noOfCol = workSheet.Dimension.End.Column; var noOfRow = workSheet.Dimension.End.Row; var subjects = new List <string>(); var Class = workSheet.Cells[rowIteratortemp, 6].Value.ToString(); subjects.Add(workSheet.Cells[rowIteratortemp, 7].Value.ToString()); subjects.Add(workSheet.Cells[rowIteratortemp, 8].Value.ToString()); subjects.Add(workSheet.Cells[rowIteratortemp, 9].Value.ToString()); subjects.Add(workSheet.Cells[rowIteratortemp, 10].Value.ToString()); subjects.Add(workSheet.Cells[rowIteratortemp, 11].Value.ToString()); var d = (from subject in db.AspNetSubjects join Classes in db.AspNetClasses on subject.ClassID equals Classes.Id where Classes.ClassName == Class && subjects.Contains(subject.SubjectName) select subject).ToList(); foreach (var subjectid in d) { AspNetStudent_Subject stu_sub = new AspNetStudent_Subject(); stu_sub.StudentID = user.Id; stu_sub.SubjectID = subjectid.Id; db.AspNetStudent_Subject.Add(stu_sub); db.SaveChanges(); } } } else { AddErrors(result); return(View("StudentRegister", model)); } rowIteratortemp++; } dbTransaction.Commit(); } catch (Exception) { dbTransaction.Dispose(); } return(RedirectToAction("StudentsIndex", "AspNetUser")); // return View("StudentIndex","Asp); }
public async Task <ActionResult> CreateStudent(RegisterViewModel model) { var dbTransaction = db.Database.BeginTransaction(); string fullName = model.Name; char[] upper = fullName.ToCharArray(); upper[0] = char.ToUpper(upper[0]); string upperr = new string(upper) + " "; string pass = upperr.Substring(0, upperr.IndexOf(" ")); model.Email = model.UserName + "@gmail.com"; model.Password = pass + "@1234"; model.ConfirmPassword = model.Password; if (ModelState.IsValid) { ApplicationDbContext context = new ApplicationDbContext(); IEnumerable <string> selectedsubjects = Request.Form["subjects"].Split(','); var user = new ApplicationUser { UserName = model.UserName, Email = model.Email, EmailConfirmed = false, Name = model.Name, PhoneNumber = Request.Form["cellNo"] }; var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { AspNetStudent student = new AspNetStudent(); student.StudentID = user.Id; student.SchoolName = Request.Form["SchoolName"]; student.BirthDate = Request.Form["BirthDate"]; student.Nationality = Request.Form["Nationality"]; student.Religion = Request.Form["Religion"]; student.Gender = Request.Form["Gender"]; student.ClassID = Convert.ToInt32(Request.Form["ClassID"]); db.AspNetStudents.Add(student); var errors = ModelState.Values.SelectMany(v => v.Errors); db.SaveChanges(); var errors1 = ModelState.Values.SelectMany(v => v.Errors); foreach (var item in selectedsubjects) { AspNetStudent_Subject stu_sub = new AspNetStudent_Subject(); stu_sub.StudentID = user.Id; stu_sub.SubjectID = Convert.ToInt32(item); db.AspNetStudent_Subject.Add(stu_sub); db.SaveChanges(); } var roleStore = new RoleStore <IdentityRole>(context); var roleManager = new RoleManager <IdentityRole>(roleStore); var userStore = new UserStore <ApplicationUser>(context); var userManager = new UserManager <ApplicationUser>(userStore); userManager.AddToRole(user.Id, "Student"); dbTransaction.Commit(); // string Error = "Student successfully saved."; return(RedirectToAction("StudentsIndex")); } else { dbTransaction.Dispose(); // AddErrors(result); } } ViewBag.ClassID = new SelectList(db.AspNetClasses, "Id", "ClassName"); return(View(model)); }