Ejemplo n.º 1
0
        public List <UnitOffering> GetUnitOfferings( )
        {
            var data = UnitOfferingProcessor.SelectUnitOfferings( );

            UnitOfferings = new List <UnitOffering>( );

            foreach (var row in data)
            {
                var unitOffering = new UnitOffering( )
                {
                    UnitOfferingId   = row.UnitOfferingId,
                    ConvenorId       = row.ConvenorId,
                    UnitId           = row.UnitId,
                    TeachingPeriodId = row.TeachingPeriodId,
                    YearId           = row.YearId
                };

                //unitOffering.Convenor = GetUser( row.ConvenorId );
                unitOffering.Unit = GetUnit(row.UnitId);
                //unitOffering.Year = GetYear( row.YearId );
                //unitOffering.TeachingPeriod = GetTeachingPeriod( row.TeachingPeriodId );
                unitOffering.UnitName = unitOffering.Unit.Name;

                UnitOfferings.Add(unitOffering);
            }
            return(UnitOfferings);
        }
Ejemplo n.º 2
0
        public ActionResult Delete(Year year)
        {
            // Make sure the user is logged in and that they have permission
            if (!IsUserLoggedIn)
            {
                return(RedirectToLogin());
            }
            if (!UserHasPermission(PermissionName.Year))
            {
                return(RedirectToPermissionDenied());
            }

            try
            {
                // Ensure no UnitOffering is using given Year
                if (UnitOfferingProcessor.SelectUnitOfferingCountForYear(year.YearId) > 0)
                {
                    throw new DataException("Unable to delete Year. One or more Unit Offerings require it.");
                }

                // Attempt to Delete Year
                YearProcessor.DeleteYear(year.YearId);

                // If delete successful return to Index
                return(RedirectToAction("Index"));
            }
            catch (Exception e)
            {
                // Show any errors
                ModelState.AddModelError("", e.Message);
            }
            // If unsuccessful reload data and return to View.
            db.GetYear(year.YearId);
            return(View(db));
        }
Ejemplo n.º 3
0
        public ActionResult Delete(TeachingPeriod teachingPeriod)
        {
            // Make sure the user is logged in and that they have permission
            if (!IsUserLoggedIn)
            {
                return(RedirectToLogin());
            }
            if (!UserHasPermission(PermissionName.TeachingPeriod))
            {
                return(RedirectToPermissionDenied());
            }

            try
            {
                // Ensure no UnitOfferings are using this TeachingPeriod before attempting delete.
                if (UnitOfferingProcessor.SelectUnitOfferingCountForTeachingPeriod(teachingPeriod.TeachingPeriodId) > 0)
                {
                    throw new DataException("Unable to delete Teaching Period. One or more Unit Offerings require it.");
                }

                // Attempt to Delete TeachingPeriod
                TeachingPeriodProcessor.DeleteTeachingPeriod(teachingPeriod.TeachingPeriodId);

                // Return to Index if Delete Successful
                return(RedirectToAction("Index"));
            }
            catch (Exception e)
            {
                //Show error
                ModelState.AddModelError("", e.Message);
            }
            // If any error return to View
            db.GetTeachingPeriod(teachingPeriod.TeachingPeriodId);
            return(View(db));
        }
        /// <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 ActionResult Create(UnitOffering model)
        {
            // Make sure the user is logged in and that they have permission
            if (!IsUserLoggedIn)
            {
                return(RedirectToLogin());
            }
            if (!UserHasPermission(PermissionName.UnitOffering))
            {
                return(RedirectToPermissionDenied());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    // Validate values of Year and TeachingPeriod
                    db.GetYear(model.YearId);
                    db.GetTeachingPeriod(model.TeachingPeriodId);
                    ValidDate(db.Year.YearValue, db.TeachingPeriod.Month, db.TeachingPeriod.Day);

                    // Attempt to Insert new UnitOffering
                    UnitOfferingProcessor.InsertUnitOffering(
                        model.UnitId,
                        model.TeachingPeriodId,
                        model.YearId,
                        model.ConvenorId);

                    // 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);
            }

            // Reload drop down lists for create
            PopulateConvenorDropDownList( );
            PopulateTeachingPeriodDropDownList( );
            PopulateUnitDropDownList( );
            PopulateYearDropDownList( );

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

            try
            {
                // Find UnitOffering
                db.GetUnitOffering(unitoffering.UnitOfferingId);
                var date = new DateTime(db.UnitOffering.Year.YearValue, db.UnitOffering.TeachingPeriod.Month, db.UnitOffering.TeachingPeriod.Day);

                // Ensure commencement date is not in past.
                if (date < DateTime.Now)
                {
                    throw new DataException("Cannot remove Unit Offering which has already commenced.");
                }

                // Ensure UnitOffering has no enrollments
                if (db.UnitOffering.Enrollments.Any( ))
                {
                    throw new DataException("Cannot Delete Unit Offering containing Enrollments");
                }

                // Attempt to delete UnitOffering
                int rowsDeleted = UnitOfferingProcessor.DeleteUnitOffering(unitoffering.UnitOfferingId);
                if (rowsDeleted <= 0)
                {
                    throw new DataException("Unable to Delete UnitOffering.");
                }

                // 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));
        }
Ejemplo n.º 7
0
        private void GetUnitOffering(int id)
        {
            var data = UnitOfferingProcessor.SelectUnitOfferingForUnitOfferingId(id);

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

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

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

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

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

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

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

            UnitOffering.Unit = new Unit( )
            {
                UnitId = unitData.UnitId,
                Name   = unitData.Name
            };
        }
        public UnitOffering GetUnitOffering(int id)
        {
            var data = UnitOfferingProcessor.SelectUnitOfferingWithEnrollments(id);

            var unitOffering = new UnitOffering( )
            {
                UnitOfferingId   = data.UnitOfferingId,
                ConvenorId       = data.ConvenorId,
                UnitId           = data.UnitId,
                TeachingPeriodId = data.TeachingPeriodId,
                YearId           = data.YearId
            };

            unitOffering.Convenor       = GetUser(data.ConvenorId);
            unitOffering.Unit           = GetUnit(data.UnitId);
            unitOffering.Year           = GetYear(data.YearId);
            unitOffering.TeachingPeriod = GetTeachingPeriod(data.TeachingPeriodId);

            if (data.Enrollments != null)
            {
                foreach (var enrollmentData in data.Enrollments)
                {
                    var enrollment = new Enrollment( );
                    enrollment.EnrollmentId   = enrollmentData.EnrollmentId;
                    enrollment.UnitOfferingId = enrollmentData.UnitOfferingId;
                    enrollment.UserId         = enrollmentData.UserId;
                    enrollment.UnitOffering   = unitOffering;

                    var userData = UserProcessor.SelectUserForUserId(enrollmentData.UserId);
                    var user     = new User( );
                    user.UserId        = userData.UserId;
                    user.Username      = userData.Username;
                    user.FirstName     = userData.FirstName;
                    user.LastName      = userData.LastName;
                    enrollment.Student = user;

                    unitOffering.Enrollments.Add(enrollment);
                }
            }

            UnitOffering = unitOffering;
            return(UnitOffering);
        }
        public UnitOffering GetUnitOfferingForDetails(string unitName, string teachingPeriodName, int yearValue)
        {
            var data = UnitOfferingProcessor.SelectUnitOfferingForDetails(unitName, teachingPeriodName, yearValue);

            var unitOffering = new UnitOffering( )
            {
                UnitOfferingId   = data.UnitOfferingId,
                ConvenorId       = data.ConvenorId,
                UnitId           = data.UnitId,
                TeachingPeriodId = data.TeachingPeriodId,
                YearId           = data.YearId
            };

            unitOffering.Convenor       = GetUser(data.ConvenorId);
            unitOffering.Unit           = GetUnit(data.UnitId);
            unitOffering.Year           = GetYear(data.YearId);
            unitOffering.TeachingPeriod = GetTeachingPeriod(data.TeachingPeriodId);

            UnitOffering = unitOffering;
            return(UnitOffering);
        }
        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));
            }
        }
        public ActionResult CreateBulkUnitOffering(HttpPostedFileBase file)
        {
            // Make sure the user is logged in and that they have permission
            if (!IsUserLoggedIn)
            {
                return(RedirectToLogin());
            }
            if (!UserHasPermission(PermissionName.UnitOffering))
            {
                return(RedirectToPermissionDenied());
            }

            //Create data which needs to be outside the try-catch block
            FileCSV      data        = null;
            int          uploadCount = 0;
            int          failCount   = 0;
            Downloadable errorFile   = null;

            // Enter a try-catch block to make sure any exceptions are caught
            try
            {
                // Decode the CSV file
                data = new FileCSV(file);

                // Make sure the headers are correct
                // This will throw an exception if not
                data.ValidateHeaders(new string[]
                {
                    "Unit",           // 0
                    "TeachingPeriod", // 1
                    "Year",           // 2
                    "Convenor"        // 3
                });

                // Loop through each row of data
                // Generate the list of results
                foreach (string[] row in data.Row)
                {
                    try
                    {
                        var unit = db.GetUnitForName(row[0]);
                        if (unit == null)
                        {
                            throw new DataException("Unit doesn't exist. ");
                        }

                        var teachingPeriod = db.GetTeachingPeriodForName(row[1]);
                        if (teachingPeriod == null)
                        {
                            throw new DataException("TeachingPeriod doesn't exist. ");
                        }

                        var year = db.GetYearForYearValue(Int32.Parse(row[2]));
                        if (year == null)
                        {
                            throw new DataException("Year doesn't exist. ");
                        }

                        var convenor = db.GetUserForUsername(row[3]);
                        if (convenor == null)
                        {
                            throw new DataException("Convenor doesn't exist. ");
                        }


                        UnitOfferingProcessor.InsertUnitOffering(unit.UnitId, teachingPeriod.TeachingPeriodId, year.YearId, convenor.UserId);
                        data.SetComment(row, "");
                        uploadCount++;
                    }
                    catch (Exception e)
                    {
                        data.SetComment(row, e.Message);
                        failCount++;
                    }
                }

                // Generate and record the error file, if required
                if (failCount > 0)
                {
                    errorFile = Downloadable.CreateCSV(data.GenerateErrorFile( ), "errors.csv");
                }
            }
            catch (Exception e)
            {
                // Record error message for View
                TempData["UploadError"] = e.Message;
            }

            // Record item counts for View
            if (uploadCount > 0)
            {
                TempData["UploadCount"] = uploadCount;
            }
            if (failCount > 0)
            {
                TempData["FailCount"] = failCount;
            }
            Session[FileCSV.SessionLabelUploadErrorLog] = (failCount > 0) ? errorFile : null;

            // All file processing has been completed
            // Go to normal create page

            return(RedirectToAction("Create", "UnitOffering"));
        }