public ActionResult EditStudent(int?id) { if (!id.HasValue) { return(RedirectToAction("ManageStudents", "Admin")); } Student student = unitOfWork.StudentRepository.GetById(id.Value); if (student == null) { return(RedirectToAction("ManageStudents", "Admin")); } StudentsCreateAccountVM model = new StudentsCreateAccountVM(); model.Id = student.Id; model.FirstName = student.FirstName; model.LastName = student.LastName; model.FacultyNumber = student.FacultyNumber; model.Email = student.Email; model.CourseId = student.CourseId.Value; model.Courses = GetCourses(); return(View("CreateEditStudent", model)); }
public ActionResult CreateStudent() { StudentsCreateAccountVM model = new StudentsCreateAccountVM(); model.UserType = UserTypeEnum.Student; model.Courses = GetCourses(); return(View("CreateEditStudent", model)); }
public ActionResult CreateEditStudent(StudentsCreateAccountVM model) { if (ModelState.IsValid) { Student student; if (model.Id == 0) { student = new Student(); } else { student = unitOfWork.StudentRepository.GetById(model.Id); } student.FirstName = model.FirstName; student.LastName = model.LastName; student.Email = model.Email; student.IsActive = true; if (model.Id == 0) { string password = Path.GetRandomFileName().Replace(".", "").Substring(0, 8); var passPhrase = PasswordHasher.Hash(password); student.Hash = passPhrase.Hash; student.Salt = passPhrase.Salt; student.IsConfirmed = false; student.CourseId = model.CourseId; Course course = unitOfWork.CourseRepository.GetById(model.CourseId); student.FacultyNumber = GenerateFacultyNumber.Generate(course, unitOfWork); unitOfWork.StudentRepository.Insert(student); unitOfWork.Save(); TempData.FlashMessage("Student has been added. Faculty number: " + student.FacultyNumber); #region Send password to mail MailMessage message = new MailMessage(); message.IsBodyHtml = true; message.Sender = new MailAddress("*****@*****.**"); message.To.Add(model.Email); message.Subject = "Welcome to the University System"; message.From = new MailAddress("*****@*****.**"); StringBuilder msgBody = new StringBuilder(); msgBody.AppendLine(String.Format("<h3>Hello, {0} {1}</h3>", student.FirstName, student.LastName)); msgBody.AppendLine("<h4>Welcome to our University System!</h4>"); msgBody.AppendLine(String.Format("<p>You must confirm your account: <a href='{0}'>Confirm</a></p>", Url.Action("ConfirmAccount", "Student", new { id = student.Id }, Request.Url.Scheme))); msgBody.AppendLine(String.Format("<p>Use this password to confirm: <strong>{0}</string></p>", password)); message.Body = msgBody.ToString(); SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587); smtp.EnableSsl = true; smtp.UseDefaultCredentials = false; #region Private smtp.Credentials = new System.Net.NetworkCredential("*****@*****.**", "programistaphonebook"); #endregion smtp.Send(message); #endregion } else { if (student.CourseId != model.CourseId) { Course course = unitOfWork.CourseRepository.GetById(model.CourseId); student.CourseId = course.Id; student.FacultyNumber = GenerateFacultyNumber.Generate(course, unitOfWork); } unitOfWork.StudentRepository.Update(student); unitOfWork.Save(); TempData.FlashMessage("Student has been edited. Faculty number: " + student.FacultyNumber); } return(RedirectToAction("ManageStudents", "Admin")); } return(View(model)); }