Example #1
0
        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));
        }
Example #2
0
        public ActionResult CreateStudent()
        {
            StudentsCreateAccountVM model = new StudentsCreateAccountVM();

            model.UserType = UserTypeEnum.Student;
            model.Courses  = GetCourses();

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