private void InitializePermissionSlipForCreate(ref CreatePermissionSlip createPermissionSlip) { List <School> SchoolList = null; List <ClassRoom> ClassList = null; int SchoolID = 0; int?ClassID = null; SchoolList = Common.GetSchools(db, User); if (SchoolList.Count == 1) { SchoolID = SchoolList[0].SchoolID; createPermissionSlip.SchoolID = SchoolID; ClassList = Common.GetClassRooms(db, User, SchoolID); if (ClassList.Count == 1) { ClassID = ClassList[0].ID; } } createPermissionSlip.StartDateTime = DateTime.Now; createPermissionSlip.EndDateTime = DateTime.Now; if (ClassID != null) { createPermissionSlip.ClassRoomID = (int)ClassID; createPermissionSlip.ClassRoom = db.ClassRooms.Find(ClassID); } }
// GET: PermissionSlips/Create public ActionResult Create() { CreatePermissionSlip p = new CreatePermissionSlip(); InitializePermissionSlipForCreate(ref p); InitializeViewBagsForCreate(); return(View(p)); }
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)); }