public ActionResult EditTeacher(int? id) { if (!id.HasValue) { return RedirectToAction("Index"); } Teacher teacher = unitOfWork.TeacherRepository.GetById(id.Value); if (teacher == null) { return RedirectToAction("NotFound", "Error"); } TeachersCreateAccountVM model = new TeachersCreateAccountVM(); model.Id = teacher.Id; model.Username = teacher.Username; model.FirstName = teacher.FirstName; model.LastName = teacher.LastName; model.Email = teacher.Email; model.TitleId = teacher.TitleId ?? 0; model.Titles = GetTitles(); model.Subjects = unitOfWork.SubjectRepository.GetAll(); return View("CreateEditTeacher", model); }
public ActionResult CreateEditTeacher(TeachersCreateAccountVM model) { if (ModelState.IsValid) { Teacher teacher; if (model.Id == 0) { teacher = new Teacher(); } else { teacher = unitOfWork.TeacherRepository.GetById(model.Id); } teacher.FirstName = model.FirstName; teacher.LastName = model.LastName; teacher.Email = model.Email; teacher.IsActive = true; teacher.Title = unitOfWork.TitleRepository.GetById(model.TitleId); if (teacher.Title == null) { ModelState.AddModelError("TitleId", "No title"); model.Titles = GetTitles(); return View(model); } if (model.Id == 0) { string password = Path.GetRandomFileName().Replace(".", "").Substring(0, 8); var passPhrase = PasswordHasher.Hash(password); teacher.Hash = passPhrase.Hash; teacher.Salt = passPhrase.Salt; teacher.IsConfirmed = false; unitOfWork.TeacherRepository.Insert(teacher); unitOfWork.Save(); TempData.FlashMessage("Teacher has been created!"); #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>", teacher.FirstName, teacher.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", "Teacher", new { id = teacher.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 { unitOfWork.TeacherRepository.Update(teacher); unitOfWork.Save(); TempData.FlashMessage("Teacher has been edited!"); } return RedirectToAction("ManageTeachers", "Admin"); } model.Titles = GetTitles(); return View(model); }
public ActionResult CreateTeacher() { TeachersCreateAccountVM model = new TeachersCreateAccountVM(); model.UserType = UserTypeEnum.Teacher; model.Titles = GetTitles(); model.Subjects = unitOfWork.SubjectRepository.GetAll(); return View("CreateEditTeacher", model); }