public ActionResult Delete(Team team)
        {
            // Make sure the user is logged in and that they have permission
            if (!IsUserLoggedIn)
            {
                return(RedirectToLogin());
            }
            if (!UserHasPermission(PermissionName.Team))
            {
                return(RedirectToPermissionDenied());
            }

            try
            {
                int rowsDeleted = TeamProcessor.DeleteTeam(team.TeamId);
                if (rowsDeleted <= 0)
                {
                    throw new DataException("Unable to Delete Team.");
                }

                return(RedirectToAction("Details", new RouteValueDictionary(
                                            new { controller = "ProjectOffering", action = "Details", Id = team.ProjectOfferingId })));
            }
            catch (Exception e)
            {
                // Show any errors
                ModelState.AddModelError("", e.Message);
            }

            //Find Team
            var teamModel       = TeamProcessor.GetTeamForTeamId(team.TeamId);
            var projectOffering = ProjectOfferingProcessor.SelectProjectOfferingForProjectOfferingId(teamModel.ProjectofferingId);

            return(View(new Team(teamModel, projectOffering)));
        }
        public ActionResult AddTeamMember(Enrollment _Enrollment)
        {
            // Make sure the user is logged in and that they have permission
            if (!IsUserLoggedIn)
            {
                return(RedirectToLogin());
            }
            if (!UserHasPermission(PermissionName.Team))
            {
                return(RedirectToPermissionDenied());
            }

            if (_Enrollment.TeamId <= 0)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            try
            {
                // Ensure a User has been selected
                //if( _Enrollment.UserId <= 0 )
                //   throw new DataException( "No Enrolled User Selected." );
                var enrollmentData = EnrollmentProcessor.SelectEnrollmentForEnrollmentId(_Enrollment.EnrollmentId);

                //Check if Student is already a member of this team
                var rowsFound = EnrollmentProcessor.SelectEnrollmentCountForTeamIdAndUserId(_Enrollment.TeamId, enrollmentData.UserId);
                if (rowsFound > 0)
                {
                    throw new DataException($"User is already a member of this Team.");
                }

                // Attempt to update enrollment with TeamId
                EnrollmentProcessor.UpdateEnrollmentWithTeamId(enrollmentData.EnrollmentId, _Enrollment.TeamId);

                return(Redirect(Request.UrlReferrer.ToString( )));
            }
            catch (Exception _Ex)
            {
                // Show Model Errors reload data and return to view.
                ModelState.AddModelError("", $"Unable to save changes due to Error: {_Ex.Message}");
            }

            // Get the team data
            var teamModel = TeamProcessor.GetTeamForTeamId(_Enrollment.TeamId);

            if (teamModel == null)
            {
                return(RedirectToUnitOfferingIndex( ));
            }

            var projectOffering = ProjectOfferingProcessor.SelectProjectOfferingForProjectOfferingId(teamModel.ProjectofferingId);

            var team = new Team(teamModel, projectOffering);

            ViewBag.EnrollmentId = new SelectList(team.GetAvailableEnrollments(team.ProjectOfferingId), "EnrollmentId", "Username", null);

            return(View(team));
        }
        /// <summary>
        /// Navigate to Details page for a Unit Offering
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public ActionResult Details(int id)
        {
            // Make sure the user is logged in and that they have permission
            if (!IsUserLoggedIn)
            {
                return(RedirectToLogin());
            }
            if (!UserHasPermission(PermissionName.UnitOffering))
            {
                return(RedirectToPermissionDenied());
            }

            if (id == 0)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            try
            {
                var unitOfferingModel = UnitOfferingProcessor.SelectUnitOfferingForUnitOfferingId(id);
                if (unitOfferingModel == null)
                {
                    return(RedirectToIndexIdNotFound(id));
                }

                var unit           = UnitProcessor.SelectUnitForUnitId(unitOfferingModel.UnitId);
                var teachingPeriod = TeachingPeriodProcessor.SelectTeachingPeriodForTeachingPeriodId(unitOfferingModel.TeachingPeriodId);
                var year           = YearProcessor.SelectYearForYearId(unitOfferingModel.YearId);
                var convenor       = UserProcessor.SelectUserForUserId(unitOfferingModel.ConvenorId);

                var projectOfferings = ProjectOfferingProcessor.SelectProjectOfferingsForUnitOfferingId(id);
                var enrollments      = EnrollmentProcessor.LoadEnrollmentsForUnitOffering(id);

                // Convert the model data to non-model data
                // Pass the data to the view
                var unitOffering = new UnitOffering(unitOfferingModel, unit, teachingPeriod, year, convenor, projectOfferings, enrollments);

                ViewBag.UserId = new SelectList(unitOffering.GetStudents( ), "UserId", "Username", null);
                return(View(unitOffering));
            }
            catch (Exception e)
            {
                return(RedirectToIndex(e));
            }

            // Find Unit Offering
            //db.GetUnitOffering( id );

            // Populate Student Drop Down List for to add new Enrollments
            //PopulateStudentDropDownList( );

            // Navigate to View
            //return View( db );
        }
        public ProjectOffering GetProjectOffering(int projectOfferingId)
        {
            var data = ProjectOfferingProcessor.SelectProjectOfferingForProjectOfferingId(projectOfferingId);

            ProjectOffering = new ProjectOffering( )
            {
                ProjectOfferingId = data.ProjectOfferingId,
                ProjectId         = data.ProjectId,
                UnitOfferingId    = data.UnitOfferingId
            };
            ProjectOffering.Project      = GetProject(data.ProjectId);
            ProjectOffering.UnitOffering = GetUnitOffering(data.UnitOfferingId);

            return(ProjectOffering);
        }
        public ActionResult Create(ProjectOffering model)
        {
            // Make sure the user is logged in and that they have permission
            if (!IsUserLoggedIn)
            {
                return(RedirectToLogin());
            }
            if (!UserHasPermission(PermissionName.ProjectOffering))
            {
                return(RedirectToPermissionDenied());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    //Validate values of Project and UnitOffering
                    db.GetProject(model.ProjectId);
                    db.GetUnitOffering(model.UnitOfferingId);

                    ProjectOfferingProcessor.InsertProjectOffering(
                        model.ProjectId,
                        model.UnitOfferingId);

                    // If Insert successful return to index
                    return(RedirectToAction("Index"));
                }
                catch (Exception e)
                {
                    // Show DataLayer errors
                    ModelState.AddModelError("", e.Message);
                }
            }
            else
            {
                // Show ModelState errors
                var errors = ModelState.Values.SelectMany(v => v.Errors);
            }
            var projectOffering = new ProjectOffering( );

            // Generate drop down lists for each field.
            ViewBag.UnitofferingId = new SelectList(projectOffering.GetUnitOfferings( ), "UnitOfferingId", "UnitName", null);
            ViewBag.ProjectId      = new SelectList(projectOffering.GetProjects( ), "ProjectId", "Name", null);

            // Navigate to View
            return(View( ));
        }
        public ActionResult Delete(ProjectOffering projectOffering)
        {
            // Make sure the user is logged in and that they have permission
            if (!IsUserLoggedIn)
            {
                return(RedirectToLogin());
            }
            if (!UserHasPermission(PermissionName.ProjectOffering))
            {
                return(RedirectToPermissionDenied());
            }

            try
            {
                if (db.GetProjectOffering(projectOffering.ProjectOfferingId) == null)
                {
                    throw new DataException("This Project Offering does not exist.");
                }

                var existingTeams = TeamProcessor.SelectTeamsForProjectOfferingId(projectOffering.ProjectOfferingId);
                foreach (var team in existingTeams)
                {
                    TeamProcessor.DeleteTeam(team.TeamId);
                }

                int rowsDeleted = ProjectOfferingProcessor.DeleteProjectOffering(projectOffering.ProjectOfferingId);
                if (rowsDeleted <= 0)
                {
                    throw new DataException("Unable to Delete ProjectOffering.");
                }

                // If delete successful return to Index
                return(RedirectToAction("Index"));
            }
            catch (Exception e)
            {
                // Show any errors
                ModelState.AddModelError("", e.Message);
            }
            // If unsuccessful return to View
            return(View(db));
        }
        public List <ProjectOffering> GetProjectOfferings( )
        {
            var data = ProjectOfferingProcessor.SelectProjectOfferings( );

            ProjectOfferings = new List <ProjectOffering>( );
            foreach (var row in data)
            {
                var projectOffering = new ProjectOffering( )
                {
                    ProjectOfferingId = row.ProjectOfferingId,
                    ProjectId         = row.ProjectId,
                    UnitOfferingId    = row.ProjectId
                };
                projectOffering.Project      = GetProject(row.ProjectId);
                projectOffering.UnitOffering = GetUnitOffering(row.UnitOfferingId);

                ProjectOfferings.Add(projectOffering);
            }
            return(ProjectOfferings);
        }
        // Create
        public ActionResult Create(int?id)
        {
            // Make sure the user is logged in and that they have permission
            if (!IsUserLoggedIn)
            {
                return(RedirectToLogin());
            }
            if (!UserHasPermission(PermissionName.Team))
            {
                return(RedirectToPermissionDenied());
            }

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            ViewBag.Message = "Create New UnitOffering";

            int projetOfferingId = ( int )id;

            var projectOffering = ProjectOfferingProcessor.SelectProjectOfferingForProjectOfferingId(projetOfferingId);

            if (projectOffering == null)
            {
                return(RedirectToIndexUnitOfferingNotFound(projetOfferingId));
            }

            //var projectModel = ProjectProcessor.GetProject( id );
            //if( projectModel == null ) return RedirectToIndexProjectNotFound( id );

            // Generate Supervisor Drop down List for each field.
            // Supervisor

            var team = new Team(projectOffering);

            ViewBag.SupervisorId = new SelectList(team.GetAvailableSupervisors( ), "UserId", "Username", null);

            return(View(team));
        }
        public ActionResult Details(int?id)
        {
            // Make sure the user is logged in and that they have permission
            if (!IsUserLoggedIn)
            {
                return(RedirectToLogin());
            }
            if (!UserHasPermission(PermissionName.ProjectOffering))
            {
                return(RedirectToPermissionDenied());
            }

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            try
            {
                int projectOfferingId    = ( int )id;
                var projectOfferingModel = ProjectOfferingProcessor.SelectProjectOfferingForProjectOfferingId(projectOfferingId);
                if (projectOfferingModel == null)
                {
                    return(RedirectToIndexIdNotFound(projectOfferingId));
                }

                var project = ProjectProcessor.GetProject(projectOfferingModel.ProjectId);

                var unitOffering = UnitOfferingProcessor.SelectUnitOfferingForUnitOfferingId(projectOfferingModel.UnitOfferingId);

                var teams = TeamProcessor.SelectTeamsForProjectOfferingId(projectOfferingModel.ProjectOfferingId);

                var projectOffering = new ProjectOffering(projectOfferingModel, project, unitOffering, teams);

                return(View(projectOffering));
            }
            catch (Exception e)
            {
                return(RedirectToIndex(e));
            }
        }
        // Edit
        public ActionResult Edit(int?id)
        {
            // Make sure the user is logged in and that they have permission
            if (!IsUserLoggedIn)
            {
                return(RedirectToLogin());
            }
            if (!UserHasPermission(PermissionName.Team))
            {
                return(RedirectToPermissionDenied());
            }

            if (id == null)
            {
                //If no id supplied return error code
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            int teamId = ( int )id;

            //Attempt to Get team for Id
            var teamModel = TeamProcessor.GetTeamForTeamId(teamId);

            if (teamModel == null)
            {
                return(RedirectToUnitOfferingIndex( ));
            }


            var projectOffering = ProjectOfferingProcessor.SelectProjectOfferingForProjectOfferingId(teamModel.ProjectofferingId);
            //var project = ProjectProcessor.GetProject( teamModel.UnitOfferingId );


            var team = new Team(teamModel, projectOffering);

            ViewBag.SupervisorId = new SelectList(team.GetAvailableSupervisors( ), "UserId", "Username", null);

            return(View(team));
        }
        // Details
        public ActionResult Details(int?id)
        {
            // Make sure the user is logged in and that they have permission
            if (!IsUserLoggedIn)
            {
                return(RedirectToLogin());
            }
            if (!UserHasPermission(PermissionName.Team))
            {
                return(RedirectToPermissionDenied());
            }

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            try
            {
                int teamId = ( int )id;
                // Get the team data
                var teamModel = TeamProcessor.GetTeamForTeamId(teamId);
                if (teamModel == null)
                {
                    return(RedirectToUnitOfferingIndex( ));
                }

                var projectOffering = ProjectOfferingProcessor.SelectProjectOfferingForProjectOfferingId(teamModel.ProjectofferingId);

                var team = new Team(teamModel, projectOffering);
                ViewBag.EnrollmentId = new SelectList(team.GetAvailableEnrollments(team.ProjectOfferingId), "EnrollmentId", "Username", null);

                return(View(team));
            }
            catch (Exception e)
            {
                return(RedirectToIndex(e));
            }
        }
        public ActionResult Delete(int?id)
        {
            // Make sure the user is logged in and that they have permission
            if (!IsUserLoggedIn)
            {
                return(RedirectToLogin());
            }
            if (!UserHasPermission(PermissionName.Team))
            {
                return(RedirectToPermissionDenied());
            }

            if (id == null)
            {
                // If no id provided show BadRequest Error
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            int teamId = ( int )id;

            // Get the team data
            var teamModel = TeamProcessor.GetTeamForTeamId(teamId);

            if (teamModel == null)
            {
                return(RedirectToUnitOfferingIndex( ));
            }

            var projectOffering = ProjectOfferingProcessor.SelectProjectOfferingForProjectOfferingId(teamModel.ProjectofferingId);

            //var project = ProjectProcessor.GetProject( teamModel.UnitOfferingId );

            //var enrollments = EnrollmentProcessor.LoadEnrollmentsForTeam( id );

            return(View(new Team(teamModel, projectOffering)));
        }
        public ActionResult Create()
        {
            // Make sure the user is logged in and that they have permission
            if (!IsUserLoggedIn)
            {
                return(RedirectToLogin());
            }
            if (!UserHasPermission(PermissionName.ProjectTask))
            {
                return(RedirectToPermissionDenied());
            }

            // Get the list of projects which can be accessed by the current user
            var projectModels = ProjectOfferingProcessor.GetProjectOfferingsForUserId(CurrentUser.UserId);

            // Setup the project drop-down list
            ViewBag.Projects = new SelectList(projectModels, "ProjectId", "Name");

            // Create a project task
            ProjectTask projectTask = new ProjectTask();

            // Go to view
            return(View(projectTask));
        }
Example #14
0
        private void GetProjectOffering(int id)
        {
            var data = ProjectOfferingProcessor.SelectProjectOfferingForProjectOfferingId(id);

            ProjectOffering = new ProjectOffering( )
            {
                ProjectOfferingId = data.ProjectOfferingId,
                ProjectId         = data.ProjectId,
                UnitOfferingId    = data.UnitOfferingId
            };

            var projectData = ProjectProcessor.GetProject(data.ProjectId);

            ProjectOffering.Project = new Project( )
            {
                ProjectId          = projectData.ProjectId,
                ProjectRoleGroupId = projectData.ProjectRoleGroupId,
                Name = projectData.Name
            };

            var unitOfferingData = UnitOfferingProcessor.SelectUnitOfferingForUnitOfferingId(data.UnitOfferingId);

            ProjectOffering.UnitOffering = new UnitOffering( )
            {
                UnitOfferingId   = unitOfferingData.UnitOfferingId,
                TeachingPeriodId = unitOfferingData.TeachingPeriodId,
                YearId           = unitOfferingData.YearId,
                ConvenorId       = unitOfferingData.ConvenorId,
                UnitId           = unitOfferingData.UnitId,
            };

            var teachingperiodData = TeachingPeriodProcessor.SelectTeachingPeriodForTeachingPeriodId(ProjectOffering.UnitOffering.TeachingPeriodId);

            ProjectOffering.UnitOffering.TeachingPeriod = new TeachingPeriod( )
            {
                TeachingPeriodId = teachingperiodData.TeachingPeriodId,
                Name             = teachingperiodData.Name,
                Day   = teachingperiodData.Day,
                Month = teachingperiodData.Month
            };
            var yearData = YearProcessor.SelectYearForYearId(ProjectOffering.UnitOffering.YearId);

            ProjectOffering.UnitOffering.Year = new Year( )
            {
                YearId    = yearData.YearId,
                YearValue = yearData.Year
            };

            var convenorData = UserProcessor.SelectUserForUserId(ProjectOffering.UnitOffering.ConvenorId);

            ProjectOffering.UnitOffering.Convenor = new User( )
            {
                UserId   = convenorData.UserId,
                Username = convenorData.Username
            };

            var unitData = UnitProcessor.SelectUnitForUnitId(ProjectOffering.UnitOffering.UnitId);

            ProjectOffering.UnitOffering.Unit = new Unit( )
            {
                UnitId = unitData.UnitId,
                Name   = unitData.Name
            };
        }