public ActionResult DeleteConfirmed(string id)
        {
            ProgramEnrollment programEnrollment = db.ProgramEnrollment.Find(id);

            db.ProgramEnrollment.Remove(programEnrollment);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
 public ActionResult UnenrollStudentAction(string programID, string userID)
 {
     if (programID != null && userID != null)
     {
         ProgramEnrollment a = db.ProgramEnrollment.Find(programID, userID);
         db.ProgramEnrollment.Remove(a);
         db.SaveChanges();
     }
     //Return a redirect to the prior screen
     return(RedirectToAction("ManageEnrollments", "ProgramEnrollments", new { id = programID }));
 }
 public ActionResult Edit([Bind(Include = "Enrollment_Number,StudentEmail,Program_ID,EventID,StartTime,EndTime,Attended")] ProgramEnrollment programEnrollment)
 {
     if (ModelState.IsValid)
     {
         db.Entry(programEnrollment).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.Program_ID = new SelectList(db.Programs, "Program_ID", "Program_Name", programEnrollment.Program_ID);
     return(View(programEnrollment));
 }
 //Action that performs actual enrollment
 public ActionResult EnrollStudentAction(string programID, string userID)
 {
     if (programID != null && userID != null)
     {
         ProgramEnrollment enrollItem = new ProgramEnrollment();
         enrollItem.AccountID  = userID;
         enrollItem.Program_ID = programID;
         db.ProgramEnrollment.Add(enrollItem);
         db.SaveChanges();
     }
     //Return a redirect to the prior screen
     return(RedirectToAction("EnrollStudent", "ProgramEnrollments", new { id = programID }));
 }
        // GET: ProgramEnrollments/Delete/5
        public ActionResult Delete(string id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ProgramEnrollment programEnrollment = db.ProgramEnrollment.Find(id);

            if (programEnrollment == null)
            {
                return(HttpNotFound());
            }
            return(View(programEnrollment));
        }
        // GET: ProgramEnrollments/Edit/5
        public ActionResult Edit(string id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ProgramEnrollment programEnrollment = db.ProgramEnrollment.Find(id);

            if (programEnrollment == null)
            {
                return(HttpNotFound());
            }
            ViewBag.Program_ID = new SelectList(db.Programs, "Program_ID", "Program_Name", programEnrollment.Program_ID);
            return(View(programEnrollment));
        }
Example #7
0
        public async Task <IActionResult> OnGetAsync(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            ProgramEnrollment = await _context.ProgramEnrollments
                                .Include(p => p.LMSProgram).SingleOrDefaultAsync(m => m.LMSProgramID == id);

            if (ProgramEnrollment == null)
            {
                return(NotFound());
            }
            ViewData["LMSProgramID"] = new SelectList(_context.LMSPrograms, "LMSProgramID", "LongName");
            return(Page());
        }
Example #8
0
        public void LogEvent(string eventTypeCode, ApplicationUser appUser, ProgramEnrollment enrollment)
        {
            Console.WriteLine("");
            Console.WriteLine("------------------------------------------------------------------------------------------");
            Console.WriteLine("[EventLogService][LogEvent][ProgramEnrollment] - (ApplicationUser.ToString()):\n"
                              + appUser);
            Console.WriteLine("");
            Console.WriteLine("[EventLogService][LogEvent][ProgramEnrollment] - (ApplicationUser.ToEventLog()):\n"
                              + appUser.ToEventLog());
            Console.WriteLine("------------------------------------------------------------------------------------------");
            Console.WriteLine("");

            Console.WriteLine("");
            Console.WriteLine("------------------------------------------------------------------------------------------");
            Console.WriteLine("[EventLogService][LogEvent][ProgramEnrollment] - (ProgramEnrollment.ToString()):\n"
                              + enrollment);
            Console.WriteLine("");
            Console.WriteLine("[EventLogService][LogEvent][ProgramEnrollment] - (ProgramEnrollment.ToEventLog()):\n"
                              + enrollment.ToEventLog());
            Console.WriteLine("------------------------------------------------------------------------------------------");
            Console.WriteLine("");

            var sb = new StringBuilder();

            sb.Append("User="******"; ");
            //sb.Append(enrollment.ToString());

            var eventLog = new EventLog
            {
                EventTypeCode   = eventTypeCode,
                UserCreatedID   = appUser.Id,
                UserCreatedName = appUser.UserName,
                DataValues      = sb.ToString(),
                DateTimeCreated = DateTime.Now
            };

            _eventLogRepository.Add(eventLog);
        }
Example #9
0
        public async Task <IActionResult> OnPostAsync()
        {
            Console.WriteLine("ModelState.IsValid: " + ModelState.IsValid);

            if (!ModelState.IsValid)
            {
                Console.WriteLine("ModelState IS NOT valid");
                return(Page());
            }

            Console.WriteLine("ModelState IS valid");

            ////////////////////////////////////////////////////////////
            // Retrieve "NONE TO PENDING" StatusTransition
            ////////////////////////////////////////////////////////////
            var statusTransition = await _context.StatusTransitions
                                   .Where(st => st.TransitionCode == TransitionCodeConstants.NONE_TO_PENDING)
                                   .SingleOrDefaultAsync();

            ////////////////////////////////////////////////////////////
            // Create ProgramEnrollment (root class), adding newly
            // created EnrollmentHistory to the EnrollmentHistory
            // collection
            ////////////////////////////////////////////////////////////
            var programEnrollment = new ProgramEnrollment
            {
                LMSProgramID      = Int32.Parse(Input.LMSProgramID),
                StudentUserId     = _userManager.GetUserId(User),
                UserCreated       = _userManager.GetUserId(User),
                DateCreated       = DateTime.Now,
                StatusCode        = StatusCodeConstants.PENDING,
                EnrollmentHistory = new List <EnrollmentHistory>
                {
                    new EnrollmentHistory
                    {
                        StatusTransitionID = statusTransition.StatusTransitionID,
                        ActorUserId        = _userManager.GetUserId(User),
                        ActorRemarks       = Input.Remarks,
                        DateCreated        = DateTime.Now
                    }
                }
            };

            /////////////////////////////////////////////////////////////////////
            // Persist ProgramEnrollment plus EnrollmentHistory to the database
            /////////////////////////////////////////////////////////////////////
            _context.ProgramEnrollments.Add(programEnrollment);
            await _context.SaveChangesAsync();

            ///////////////////////////////////////////////////////////////////
            // Log the 'ENROLLMENT_REQUSTED' event
            ///////////////////////////////////////////////////////////////////
            ApplicationUser student = await GetCurrentUserAsync();

            // _eventLogService.LogEvent(EventTypeCodeConstants.ENROLLMENT_REQUSTED, student, programEnrollment.ProgramEnrollmentID);
            _eventLogService.LogEvent(EventTypeCodeConstants.ENROLLMENT_REQUSTED, student, programEnrollment);

            ////////////////////////////////////////////////////////////////////////////////////
            // Send email notification to approvers who have their EmailNotify flag set to true
            ////////////////////////////////////////////////////////////////////////////////////
            IList <ProgramApprover> approverList = await _context.ProgramApprovers
                                                   .Where(pa => pa.LMSProgramID == programEnrollment.LMSProgramID && pa.EmailNotify == true)
                                                   .Include(pa => pa.Approver)
                                                   .Include(pa => pa.LMSProgram)
                                                   .AsNoTracking()
                                                   .ToListAsync();

            foreach (ProgramApprover approverObj in approverList)
            {
                string email   = approverObj.Approver.Email;
                string subject = "Program Enrollment Request (" + approverObj.LMSProgram.LongName + ")";
                string message = student.FullName + " has requested to enroll in " + approverObj.LMSProgram.LongName;
                await _emailSender.SendEmailAsync(email, subject, message);
            }
            ////////////////////////////////////////////////////////////////////////////////////
            // Send email notification to LMS Program's common inbox (if any)
            ////////////////////////////////////////////////////////////////////////////////////
            LMSProgram lmsProgram = await _context.LMSPrograms
                                    .Where(p => p.LMSProgramID == programEnrollment.LMSProgramID && p.CommonInbox != null)
                                    .AsNoTracking()
                                    .SingleOrDefaultAsync();

            if (lmsProgram != null &&
                String.IsNullOrEmpty(lmsProgram.CommonInbox) == false)
            {
                string email   = lmsProgram.CommonInbox;
                string subject = "Program Enrollment Request (" + lmsProgram.LongName + ")";
                string message = student.FullName + " has requested to enroll in " + lmsProgram.LongName;
                await _emailSender.SendEmailAsync(email, subject, message);
            }

            /////////////////////////////////////////////////////////////////
            // Redirect to Enrollmentl Index Page
            /////////////////////////////////////////////////////////////////
            return(RedirectToPage("./Index"));
        }
Example #10
0
        public async Task <IActionResult> OnPostAsync(int id, string status)
        {
            Console.WriteLine("Approvals.Edit.OnPost(): BEGIN");
            Console.WriteLine("id: " + id);
            Console.WriteLine("status: " + status);

            ////////////////////////////////////////////////////////////
            // Step #1:
            // Check to see if records exists
            ////////////////////////////////////////////////////////////
            ProgramEnrollment = await _dbContext.ProgramEnrollments
                                .Where(pe => pe.ProgramEnrollmentID == id)
                                .SingleOrDefaultAsync();

            ////////////////////////////////////////////////////////////
            // Return "Not Found" if record doesn't exist
            ////////////////////////////////////////////////////////////
            if (ProgramEnrollment == null)
            {
                Console.WriteLine("ProgramEnrollment NOT FOUND in Step# 1");
                return(NotFound());
            }

            ////////////////////////////////////////////////////////////
            // Step #2:
            // Now that record exists, make sure that the logged-in user
            // is authorized to edit (approver/deny) enrollment
            // applications for this particular LMS Program.
            ////////////////////////////////////////////////////////////
            var sql = " SELECT * FROM public.\"ProgramEnrollment\" "
                      + "  WHERE  \"ProgramEnrollmentID\" = {0} "
                      + "    AND  \"LMSProgramID\" "
                      + "     IN "
                      + "      ( "
                      + "        SELECT \"LMSProgramID\" "
                      + "          FROM public.\"ProgramApprover\" "
                      + "         WHERE \"ApproverUserId\" = {1} "
                      + "      ) ";

            ProgramEnrollment = null;
            ProgramEnrollment = await _dbContext.ProgramEnrollments
                                .FromSql(sql, id, _userManager.GetUserId(User))
                                .SingleOrDefaultAsync();

            /////////////////////////////////////////////////////////////
            // We already know that record exists from Step #1 so if we
            // get a "Not Found" in Step #2, we know it's because the
            // logged-in user is not authorized to edit (approve/deny)
            // enrollment applications for this LMS Program.
            /////////////////////////////////////////////////////////////
            if (ProgramEnrollment == null)
            {
                return(Unauthorized());
            }

            /////////////////////////////////////////////////////////////////
            // Update ProgramEnrollment Record
            /////////////////////////////////////////////////////////////////
            ProgramEnrollment.StatusCode     = status;
            ProgramEnrollment.ApproverUserId = _userManager.GetUserId(User);
            _dbContext.ProgramEnrollments.Update(ProgramEnrollment);
            await _dbContext.SaveChangesAsync();

            /////////////////////////////////////////////////////////////////
            // Redirect to Approval Index Page
            /////////////////////////////////////////////////////////////////
            return(RedirectToPage("./Index"));
        }
Example #11
0
        public async Task <IActionResult> OnGetAsync(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            ////////////////////////////////////////////////////////////
            // Step #1:
            // Check to see if records exists
            ////////////////////////////////////////////////////////////
            ProgramEnrollment = await _dbContext.ProgramEnrollments
                                .Where(pe => pe.ProgramEnrollmentID == id)
                                .SingleOrDefaultAsync();

            ////////////////////////////////////////////////////////////
            // Return "Not Found" if record doesn't exist
            ////////////////////////////////////////////////////////////
            if (ProgramEnrollment == null)
            {
                return(NotFound());
            }

            ////////////////////////////////////////////////////////////
            // Step #2:
            // Now that record exists, make sure that the logged-in user
            // is authorized to edit (approver/deny) enrollment
            // applications for this particular LMS Program.
            ////////////////////////////////////////////////////////////
            var sql = " SELECT * FROM public.\"ProgramEnrollment\" "
                      + "  WHERE  \"ProgramEnrollmentID\" = {0} "
                      + "    AND  \"LMSProgramID\" "
                      + "     IN "
                      + "      ( "
                      + "        SELECT \"LMSProgramID\" "
                      + "          FROM public.\"ProgramApprover\" "
                      + "         WHERE \"ApproverUserId\" = {1} "
                      + "      ) ";

            ProgramEnrollment = null;
            ProgramEnrollment = await _dbContext.ProgramEnrollments
                                .FromSql(sql, id, _userManager.GetUserId(User))
                                .Include(pe => pe.LMSProgram)
                                .Include(pe => pe.Student)
                                .ThenInclude(s => s.SubAgency)
                                .ThenInclude(sa => sa.Agency)
                                .Include(pe => pe.EnrollmentStatus)
                                .SingleOrDefaultAsync();

            /////////////////////////////////////////////////////////////
            // We already know that record exists from Step #1 so if we
            // get a "Not Found" in Step #2, we know it's because the
            // logged-in user is not authorized to edit (approve/deny)
            // enrollment applications for this LMS Program.
            /////////////////////////////////////////////////////////////
            if (ProgramEnrollment == null)
            {
                return(Unauthorized());
            }

            return(Page());
        }