public ActionResult Edit([Bind(Include = "Id,Email,PhoneNumber,UserName,FirstName,MiddleName,LastName")] AspNetUser aspNetUser)
        {
            AspNetUser user         = null;
            AspNetUser originalUser = null;

            if (ModelState.IsValid)
            {
                user = db.AspNetUsers.Where(u => u.Id != aspNetUser.Id && u.UserName == aspNetUser.UserName).FirstOrDefault();
                if (user != null)
                {
                    ModelState.AddModelError("UserName", "UserName is not available");
                }
                else
                {
                    originalUser = db.AspNetUsers.Find(aspNetUser.Id);
                    if (originalUser.Email != aspNetUser.Email)
                    {
                        aspNetUser.EmailConfirmed = false;                         //reset email confirmation and then send email.
                    }
                    db.Entry(aspNetUser).State = EntityState.Modified;
                    db.SaveChanges();

                    ApplicationUserManager mgr = HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>();

                    string code        = mgr.GenerateEmailConfirmationToken(user.Id);
                    var    callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                    mgr.SendEmail(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");

                    return(RedirectToAction("Index"));
                }
            }
            return(View(aspNetUser));
        }
Esempio n. 2
0
 public ActionResult Edit([Bind(Include = "ID,Name,UserDefined")] Category category)
 {
     if (ModelState.IsValid)
     {
         db.Entry(category).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(category));
 }
 public ActionResult Edit([Bind(Include = "Id,EmailDomain,EmailAPIKey,DefaultFromAddress")] SystemConfiguration systemConfiguration)
 {
     if (ModelState.IsValid)
     {
         db.Entry(systemConfiguration).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(systemConfiguration));
 }
Esempio n. 4
0
 public ActionResult Edit([Bind(Include = "SchoolID,SchoolName")] School school)
 {
     if (ModelState.IsValid)
     {
         db.Entry(school).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(school));
 }
 public ActionResult Edit([Bind(Include = "ID,Name,Location,Cost,RequireChaperone,RequireChaperoneBackgroundCheck,ConsistencyCheck")] Template template)
 {
     if (ModelState.IsValid)
     {
         template.ModifiedDateTime = DateTime.Now;
         db.Entry(template).State  = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(template));
 }
Esempio n. 6
0
        public ActionResult Edit([Bind(Include = "ID,StudentNumber,FullName,ClassRoomID,SchoolID")] Student student)
        {
            int schoolID = -1;
            List <SelectListItem> SchoolIDs = null;

            if (ModelState.IsValid)
            {
                try
                {
                    db.Entry(student).State = EntityState.Modified;
                    db.SaveChanges();
                    return(RedirectToAction("Index"));
                }
                catch (DbEntityValidationException ex)
                {
                    ModelState.AddModelError("", "Error updating student");
                    foreach (DbEntityValidationResult ValidationErrors in ex.EntityValidationErrors)
                    {
                        if (!ValidationErrors.IsValid)
                        {
                            foreach (DbValidationError ValidationError in ValidationErrors.ValidationErrors)
                            {
                                ModelState.AddModelError(ValidationError.PropertyName, ValidationError.ErrorMessage);
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError("", "Error updating student");
                    ModelState.AddModelError("", ex.Message);
                    foreach (var key in ex.Data.Keys)
                    {
                        ModelState.AddModelError("", key + " :: " + ex.Data[key].ToString());
                    }
                }
            }

            SchoolIDs        = Common.GetSchoolsForDropdown(db, User);
            ViewBag.SchoolID = SchoolIDs;
            if (SchoolIDs.Count == 1)
            {
                schoolID = int.Parse(SchoolIDs[0].Value);
            }
            ViewBag.ClassRoomID = Common.GetClassRoomsForDropdown(db, User, schoolID);
            return(View(student));
        }
        public ActionResult Create([Bind(Include = "ClassRoomID,PermissionSlipCategoryID,PermissionSlipTemplateID,Name,Location,StartDateTime,EndDateTime,Cost,RequireChaperone,RequireChaperoneBackgroundCheck,EmailGuardians")] CreatePermissionSlip createPermissionSlip)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    PermissionSlip p = new PermissionSlip()
                    {
                        PermissionSlipCategoryID = createPermissionSlip.PermissionSlipCategoryID,
                        PermissionSlipTemplateID = createPermissionSlip.PermissionSlipTemplateID,
                        ClassRoomID      = createPermissionSlip.ClassRoomID,
                        Name             = createPermissionSlip.Name,
                        Location         = createPermissionSlip.Location,
                        StartDateTime    = createPermissionSlip.StartDateTime,
                        EndDateTime      = createPermissionSlip.EndDateTime,
                        Cost             = createPermissionSlip.Cost,
                        RequireChaperone = createPermissionSlip.RequireChaperone,
                        RequireChaperoneBackgroundCheck = createPermissionSlip.RequireChaperoneBackgroundCheck
                    };

                    db.PermissionSlips.Add(p);
                    db.SaveChanges();
                    db.Entry(p).Reload();                     // Make sure the ID is populated
                    if (createPermissionSlip.EmailGuardians)
                    {
                        List <Student> students = db.ClassRooms.Where(c => c.ID == createPermissionSlip.ClassRoomID).SelectMany(c => c.Students).ToList();
                        foreach (Student s in students)
                        {
                            foreach (AspNetUser g in s.Guardians)
                            {
                                if (g.EmailConfirmed)
                                {
                                    string EmailMessage = "Permission Slip Created for your student's class. " +
                                                          Url.Action("PermissionSlipApproval", "PermissionSlips", new RouteValueDictionary(new { PermissionSlipID = p.ID, StudentID = s.ID }), protocol: Request.Url.Scheme);
                                    //for each guardian of class, send email
                                    MailGunUtility.SendSimpleMessage(new EmailMessage()
                                    {
                                        EmailSubject    = "Class Room Permission Slip",
                                        ToAddress       = g.Email,
                                        MessageText     = EmailMessage,
                                        HtmlMessageText = EmailMessage
                                    });
                                }
                            }
                        }
                        ////for each guardian of class, send email
                        //MailGunUtility.SendSimpleMessage(new EmailMessage()
                        //{
                        //	MessageText = "Permission Slip Created for your student's class"
                        //});
                    }

                    return(RedirectToAction("Index"));
                }
                catch (Exception ex)
                {
                }
            }

            InitializeViewBagsForCreate();
            return(View(createPermissionSlip));
        }
Esempio n. 8
0
        public ActionResult Edit([Bind(Include = "ID,RoomNumber,TeacherUserID,SchoolID,Students")] ClassRoom classRoom)
        {
            List <Student>        currentStudents   = null;
            List <Student>        remainingStudents = null;
            List <SelectListItem> SchoolList        = null;

            if (ModelState.IsValid)
            {
                try
                {
                    classRoom.SetModified();
                    db.Entry(classRoom).State = EntityState.Modified;

                    //Delete Students that are no longer there
                    remainingStudents = classRoom.Students.ToList();
                    currentStudents   = db.Students.Where(s => s.ClassRoomID == classRoom.ID).ToList();
                    foreach (Student s in currentStudents.Where(o => !remainingStudents.Any(s => s.ID == o.ID)))
                    {
                        classRoom.Students.Remove(s);
                        db.Students.Remove(s);
                    }
                    foreach (Student s in remainingStudents)
                    {
                        db.Entry(s).State = EntityState.Modified;
                    }

                    db.SaveChanges();
                    return(RedirectToAction("Index"));
                }
                catch (Exception ex)
                {
                    string    Message      = "Error Saving Changes";
                    string    InnerMessage = "";
                    Exception inner        = ex.InnerException;
                    while (inner != null)
                    {
                        InnerMessage = " :: " + inner.Message;
                        inner        = inner.InnerException;
                    }
                    Message += InnerMessage;

                    ModelState.AddModelError("", Message);
                }
            }

            SchoolList = Common.GetSchoolsForDropdown(db, User);

            ViewBag.SchoolID = SchoolList;
            if (User.IsInRole("Teacher"))
            {
                ViewBag.TeacherUserID = Common.GetTeachersForDropdown(db, User, User.Identity.GetUserId());
            }
            else if (SchoolList.Count == 1)             //Will get Picked based on School
            {
                ViewBag.TeacherUserID = Common.GetTeachersForDropdown(db, User, "", int.Parse(SchoolList[0].Value));
            }
            else
            {
                ViewBag.TeacherUserID = new SelectList(new List <AspNetUser>(), "Id", "FullName");
            }
            return(View(classRoom));
        }
Esempio n. 9
0
        public ActionResult AddStudent([Bind(Include = "ID,StudentNumber,FullName,SchoolID")] AddStudentViewModel model)
        {
            Student existingStudent = null;
            Student student         = null;

            if (ModelState.IsValid)
            {
                try
                {
                    if (model.ID != null)
                    {
                        existingStudent = EntityDB.Students.Find(model.ID);
                    }

                    student = EntityDB.Students.Where(s => s.StudentNumber == model.StudentNumber).FirstOrDefault();
                    if (existingStudent != null && student != null)
                    {
                        if (existingStudent.StudentNumber != student.StudentNumber || existingStudent.FullName != student.FullName || existingStudent.SchoolID != student.SchoolID)
                        {
                            throw new Exception("Student cannot be verified. Double check information and try again. Contact the school administrator if the issues persists");
                        }
                    }
                    if ((student != null) && (student.FullName == model.FullName) && (student.SchoolID == model.SchoolID))
                    {
                        //TODO : Add Guardian/Student Record and Guardian/School if not already existing.
                        AspNetUser user        = EntityDB.AspNetUsers.Find(User.Identity.GetUserId());
                        Student    userStudent = user.Students.Where(s => s.StudentNumber == model.StudentNumber).FirstOrDefault();

                        if ((user != null) && (userStudent == null) && (((student.Guardian1TempEmail != null) && student.Guardian1TempEmail.Equals(user.Email, StringComparison.CurrentCultureIgnoreCase)) || ((student.Guardian2TempEmail != null) && student.Guardian2TempEmail.Equals(user.Email, StringComparison.CurrentCultureIgnoreCase))))
                        {
                            user.Students.Add(student);

                            if ((student.Guardian1TempEmail != null) && student.Guardian1TempEmail.Equals(user.Email, StringComparison.CurrentCultureIgnoreCase))
                            {
                                student.Guardian1TempEmail = null;
                            }
                            else
                            {
                                student.Guardian2TempEmail = null;
                            }

                            EntityDB.Entry(student).State = EntityState.Modified;
                            EntityDB.Entry(user).State    = EntityState.Modified;
                            EntityDB.SaveChanges();
                            return(RedirectToAction("Index", new { Message = ManageMessageId.AddStudentSuccess }));
                        }
                        else if (userStudent != null)
                        {
                            ModelState.AddModelError("", "Student Number already added");
                        }
                        else if ((student.Guardian1TempEmail != user.Email) && (student.Guardian2TempEmail != user.Email))
                        {
                            ModelState.AddModelError("", "Student cannot be verified. Double check information and try again. Contact the school administrator if the issues persists");
                        }
                        else
                        {
                            ModelState.AddModelError("", "Unable to manage user account. Log off/on and try adding the student again. Contact support if the issue continues");
                        }
                    }
                    else
                    {
                        ModelState.AddModelError("", "Student cannot be verified. Double check information and try again. Contact the school administrator if the issues persists");
                    }
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError("", "Exception adding Student. Double check information and try again. Contact the school administrator if the issues persists. :: " + ex.ToString());
                }
            }

            ViewBag.SchoolID = new SelectList(EntityDB.Schools.ToList(), "SchoolID", "SchoolName");
            return(View(model));
        }