示例#1
0
        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));
        }
示例#2
0
        public ActionResult CreateTeacher()
        {
            TeachersCreateAccountVM model = new TeachersCreateAccountVM();

            model.UserType = UserTypeEnum.Teacher;
            model.Titles   = GetTitles();
            model.Subjects = unitOfWork.SubjectRepository.GetAll();

            return(View("CreateEditTeacher", model));
        }
示例#3
0
        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));
        }