public ActionResult DeleteConfirmed(int id) { PermissionSlip permissionSlip = db.PermissionSlips.Find(id); db.PermissionSlips.Remove(permissionSlip); db.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult Edit([Bind(Include = "ID,PermissionSlipCategoryID,PermissionSlipTemplateID,ClassRoomID,Name,Location,StartDateTime,EndDateTime,Cost,RequireChaperone,RequireChaperoneBackgroundCheck")] PermissionSlip permissionSlip) { if (ModelState.IsValid) { db.Entry(permissionSlip).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.PermissionSlipCategory = new SelectList(db.Categories, "ID", "Name", permissionSlip.PermissionSlipCategoryID); ViewBag.ClassRoomID = new SelectList(db.ClassRooms, "ID", "RoomNumber", permissionSlip.ClassRoomID); ViewBag.PermissionSlipTemplateID = new SelectList(db.Templates, "ID", "Name", permissionSlip.PermissionSlipTemplateID); return(View(permissionSlip)); }
public IActionResult FillPermissionSlip([Bind("Id,Date,Location,Classroom,StudentFirst,StudentLast,ApprovingParent")] PermissionSlip model) { var userId = this.User.FindFirstValue(ClaimTypes.NameIdentifier); var parent = _context.Parents.Where(c => c.IdentityUserId == userId).FirstOrDefault(); model.ApprovingParent = parent.FirstName + " " + parent.LastName; _context.Update(model); _context.SaveChanges(); return(RedirectToAction("ViewPermissionSlips")); }
// GET: PermissionSlips/Delete/5 public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } PermissionSlip permissionSlip = db.PermissionSlips.Find(id); if (permissionSlip == null) { return(HttpNotFound()); } return(View(permissionSlip)); }
// GET: PermissionSlips/Print/5 public ActionResult Print(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } //////////////////////////////////////////////////////////////////// PermissionSlip permissionSlip = null; PermissionSlipPrint PermissionSlipPrint = null; try { if (User.IsInRole("Guardian")) { throw new Exception("Unable to access print out for permission slip"); } permissionSlip = db.PermissionSlips.Single(p => p.ID == id); //Throws exception if not found PermissionSlipPrint = new PermissionSlipPrint() { Name = permissionSlip.Name, Location = permissionSlip.Location, StartDateTime = permissionSlip.StartDateTime, EndDateTime = permissionSlip.EndDateTime, Cost = permissionSlip.Cost, RequireChaperone = permissionSlip.RequireChaperone, RequireChaperoneBackgroundCheck = permissionSlip.RequireChaperoneBackgroundCheck, GuardianName = "", Approved = false, CanChaperone = false, DaytimePhone = "", EmergencyPhone = "", SpecialHealthDietaryAccessConsiderations = "" }; } catch (Exception ex) { //TODO : Do something with Exception Action ModelState.AddModelError("", "Exception occurred processing permission slip print request :: " + ex.ToString()); return(RedirectToAction("Index", "PermissionSlips")); } return(View(PermissionSlipPrint)); /////////////////////////////////////////////////////////////////////// }
// GET: PermissionSlips/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } PermissionSlip permissionSlip = db.PermissionSlips.Find(id); if (permissionSlip == null) { return(HttpNotFound()); } ViewBag.PermissionSlipCategoryID = new SelectList(db.Categories, "ID", "Name", permissionSlip.PermissionSlipCategoryID); ViewBag.ClassRoomID = new SelectList(db.ClassRooms, "ID", "RoomNumber", permissionSlip.ClassRoomID); ViewBag.PermissionSlipTemplateID = new SelectList(db.Templates, "ID", "Name", permissionSlip.PermissionSlipTemplateID); return(View(permissionSlip)); }
public IActionResult CreatePermissionSlip(int id, [Bind("Id,Date,Location,Classroom,ApprovingParent,StudentFirst,StudentLast")] PermissionSlip slip) { if (ModelState.IsValid) { var classroom = _context.Classrooms.Find(id); var students = _context.Students.Where(x => x.Classroom == classroom.ClassName); foreach (var student in students) { slip.Id = 0; slip.StudentFirst = student.StudentFirstName; slip.StudentLast = student.StudentLastName; slip.Classroom = classroom.ClassName; PermissionSlip permissionSlip = new PermissionSlip() { Id = slip.Id, Date = slip.Date, Location = slip.Location, Classroom = slip.Classroom, StudentFirst = slip.StudentFirst, StudentLast = slip.StudentLast, ApprovingParent = slip.ApprovingParent }; _context.Add(permissionSlip); } _context.SaveChanges(); } return(RedirectToAction("ViewForms")); }
public ActionResult PermissionSlipStatus(int PermissionSlipID) { //TODO /* * Validate Teacher or School Admin * Return a view that shows a list of all students for that permission slip, their approval status * Include buttons to: * Send emails to guardians of students with "No Approval" status to give approval * Send specific email to student guardians to give approval * Send Emails to guardians of all students as a reminder of the event */ PermissionSlipStatus permissionSlipStatus = new PermissionSlipStatus(); PermissionSlip permissionSlip = null; GuardianApproval guardianApproval = null; StudentPermissionSlipStatus studentPermissionSlip = null; List <StudentPermissionSlipStatus> studentPermissionSlipStatuses = new List <StudentPermissionSlipStatus>(); string UserID = ""; try { if (User.IsInRole("Guardian")) { throw new Exception("Unable to provide permission slip status"); } UserID = User.Identity.GetUserId(); permissionSlip = db.PermissionSlips.Find(PermissionSlipID); if ((permissionSlip.ClassRoom.TeacherUserID != UserID) && User.IsInRole("Teacher")) { throw new Exception("Unable to provide permission slip status"); } if (permissionSlip != null) { List <Student> students = permissionSlip.ClassRoom.Students.ToList(); foreach (Student s in students) { studentPermissionSlip = new StudentPermissionSlipStatus() { StudentID = s.ID, StudentFullName = s.FullName, Guardians = s.Guardians.ToList() }; guardianApproval = db.GuardianApprovals.Where(g => g.StudentID == s.ID && g.PermissionSlipID == permissionSlip.ID).FirstOrDefault(); if (guardianApproval != null) { studentPermissionSlip.Approval = guardianApproval.Approved; } studentPermissionSlipStatuses.Add(studentPermissionSlip); } } permissionSlipStatus.permissionSlip = permissionSlip; permissionSlipStatus.studentPermissionStatuses = studentPermissionSlipStatuses; } catch (Exception ex) { //TODO : Do something with Exception Action ModelState.AddModelError("", "Exception occurred processing request for permission slip status:: " + ex.ToString()); return(RedirectToAction("Index", "Home")); } return(View(permissionSlipStatus)); }
public ActionResult PermissionSlipApproval(int PermissionSlipID, int StudentID) { PermissionSlip permissionSlip = null; Student student = null; AspNetUser Guardian = null; GuardianApproval guardianApproval = null; string UserID = ""; bool AllowEdit = true; try { if (!User.IsInRole("Guardian") && !User.IsInRole("Teacher")) { throw new Exception("Unable to provide approval for permission slip"); } UserID = User.Identity.GetUserId(); permissionSlip = db.PermissionSlips.Find(PermissionSlipID); AllowEdit = permissionSlip.StartDateTime >= DateTime.Now.Date; student = db.Students.Find(StudentID); if (User.IsInRole("Guardian")) { Guardian = db.AspNetUsers.Where(u => u.Id == UserID).FirstOrDefault(); if ((permissionSlip != null) && (student != null) && (Guardian != null)) { //Check to make sure Guardian is one of the Student's Guardians if (student.Guardians.Where(g => g.Id == Guardian.Id).FirstOrDefault() == null) { throw new Exception("Unauthorized User"); } guardianApproval = db.GuardianApprovals.Where(a => a.PermissionSlipID == PermissionSlipID && a.StudentID == StudentID).FirstOrDefault(); if (guardianApproval == null) { guardianApproval = new GuardianApproval() { Name = permissionSlip.Name, Location = permissionSlip.Location, StartDateTime = permissionSlip.StartDateTime, EndDateTime = permissionSlip.EndDateTime, Cost = permissionSlip.Cost, RequireChaperone = permissionSlip.RequireChaperone, RequireChaperoneBackgroundCheck = permissionSlip.RequireChaperoneBackgroundCheck, GuardianUserID = AllowEdit ? UserID : "", GuardianName = AllowEdit ? Guardian.FullName : "", StudentID = StudentID, StudentFullName = student.FullName, PermissionSlipID = PermissionSlipID, PermissionSlip = permissionSlip, Approved = false, CanChaperone = false, DaytimePhone = Guardian.PhoneNumberConfirmed ? Guardian.PhoneNumber : "", EmergencyPhone = "", GuardianEmail = "", SpecialHealthDietaryAccessConsiderations = "" }; } else { guardianApproval.StudentFullName = student.FullName; guardianApproval.Name = permissionSlip.Name; guardianApproval.Location = permissionSlip.Location; guardianApproval.StartDateTime = permissionSlip.StartDateTime; guardianApproval.EndDateTime = permissionSlip.EndDateTime; guardianApproval.Cost = permissionSlip.Cost; guardianApproval.RequireChaperone = permissionSlip.RequireChaperone; guardianApproval.RequireChaperoneBackgroundCheck = permissionSlip.RequireChaperoneBackgroundCheck; guardianApproval.ExistingSignature = guardianApproval.Signature; guardianApproval.Signature = null; } } } else //Teacher { AspNetUser Teacher = db.AspNetUsers.Find(UserID); guardianApproval = db.GuardianApprovals.Where(a => a.PermissionSlipID == PermissionSlipID && a.StudentID == StudentID).FirstOrDefault(); if (guardianApproval == null) { guardianApproval = new GuardianApproval() { Name = permissionSlip.Name, Location = permissionSlip.Location, StartDateTime = permissionSlip.StartDateTime, EndDateTime = permissionSlip.EndDateTime, Cost = permissionSlip.Cost, RequireChaperone = permissionSlip.RequireChaperone, RequireChaperoneBackgroundCheck = permissionSlip.RequireChaperoneBackgroundCheck, GuardianUserID = AllowEdit ? UserID : "", GuardianName = AllowEdit ? "Verbal Approval - " + Teacher.FullName : "", StudentID = StudentID, StudentFullName = student.FullName, PermissionSlipID = PermissionSlipID, PermissionSlip = permissionSlip, Approved = false, CanChaperone = false, DaytimePhone = "", EmergencyPhone = "", GuardianEmail = "", SpecialHealthDietaryAccessConsiderations = "" }; } else { guardianApproval.StudentFullName = student.FullName; guardianApproval.Name = permissionSlip.Name; guardianApproval.Location = permissionSlip.Location; guardianApproval.StartDateTime = permissionSlip.StartDateTime; guardianApproval.EndDateTime = permissionSlip.EndDateTime; guardianApproval.Cost = permissionSlip.Cost; guardianApproval.RequireChaperone = permissionSlip.RequireChaperone; guardianApproval.RequireChaperoneBackgroundCheck = permissionSlip.RequireChaperoneBackgroundCheck; guardianApproval.ExistingSignature = guardianApproval.Signature; guardianApproval.Signature = null; } } } catch (Exception ex) { //TODO : Do something with Exception Action ModelState.AddModelError("", "Exception occurred processing approval request :: " + ex.ToString()); return(RedirectToAction("Index", "Home")); } return(View(guardianApproval)); }
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)); }