예제 #1
0
        /// <summary>
        /// Mark the selected launch page as completed for the current student.
        /// </summary>
        /// <param name="ID">Invitation ID</param>
        /// <param name="LaunchPageID">Launch Page ID</param>
        /// <returns></returns>
        public ActionResult CompleteLaunchPage(int ID, int LaunchPageID)
        {
            tblInvitation          Invitation   = _ODB.tblInvitations.Where(e => e.ID == ID).SingleOrDefault();
            tblLaunchPage          LaunchPage   = _ODB.tblLaunchPages.Where(e => e.ID == LaunchPageID).SingleOrDefault();
            tblCompletedLaunchPage existingPage = Invitation.tblCompletedLaunchPages.Where(e => e.LaunchPageID == LaunchPageID).SingleOrDefault();

            if (Invitation.ENumber == Current.User.ENumber || Current.User.IsAdmin)
            {
                if (existingPage == null)
                {
                    tblCompletedLaunchPage CompletedPage = new tblCompletedLaunchPage();
                    CompletedPage.tblInvitation = Invitation;
                    CompletedPage.tblLaunchPage = LaunchPage;
                    CompletedPage.DateCompleted = DateTime.Now;
                    _ODB.tblCompletedLaunchPages.AddObject(CompletedPage);
                    _ODB.SaveChanges();
                    Logging.Log(Logging.LogType.Audit, string.Format("User {0} completed Launch Page ID {1} for Invitation {2}. tblCompletedLaunchPage.ID = {3}", Current.User.Username, LaunchPage.ID, Invitation.ID, CompletedPage.ID));
                    if (Invitation.HasPendingLaunch)
                    {
                        return(this.RedirectToAction <StudentController>(c => c.Launch(Invitation.ID)));
                    }
                    else
                    {
                        this.ShowPageMessage("You have completed the required LAUNCH module.");
                        return(this.RedirectToAction <StudentController>(c => c.Invitation(Invitation.ID)));
                    }
                }
                else
                {
                    this.ShowPageError("The submitted launch page has already been completed.");
                }
            }
            else
            {
                this.ShowPageError("You are not authorized to view Launch material for this Invitation");
            }

            return(this.RedirectToAction <StudentController>(c => c.Launch(Invitation.ID)));
        }
예제 #2
0
        /// <summary>
        /// Allows the student to review a previously viewed & submitted launch page
        /// </summary>
        /// <param name="ID">Invitation ID</param>
        /// <param name="LaunchPageID">Launch Page ID</param>
        /// <returns></returns>
        public ActionResult ReviewLaunchPage(int ID, int LaunchPageID)
        {
            tblInvitation Invitation = _ODB.tblInvitations.Where(e => e.ID == ID).SingleOrDefault();
            tblLaunchPage Page       = null;

            if (Invitation.ENumber == Current.User.ENumber)
            {
                if (Invitation != null)
                {
                    Page = Invitation.CompletedLaunchPages.Where(e => e.ID == LaunchPageID).SingleOrDefault();
                    return(View("Launch", new Tuple <tblInvitation, tblLaunchPage>(Invitation, Page)));
                }
                else
                {
                    this.ShowPageError("Could not find an orientation invitation for the given ID");
                }
            }
            else
            {
                this.ShowPageError("You are not authorized to view Launch material for this Invitation");
            }

            return(this.RedirectToAction <StudentController>(c => c.Index()));
        }