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