//Populates the given success map with the required data. private static void populateSuccessMap(ref SuccessMap successMap) { DatabaseSelect dbSelect = new DatabaseSelect(); DataTable objectiveMappingsTable = dbSelect.SelectSuccessObjMapSuccessMap(successMap.ID); //The success map has success objectives if (objectiveMappingsTable != null && objectiveMappingsTable.Rows.Count > 0) { Dictionary <int, SuccessCategory> categories = new Dictionary <int, SuccessCategory>(); Dictionary <int, SuccessObjectiveClassifier> classifiers = new Dictionary <int, SuccessObjectiveClassifier>(); Dictionary <int, Semester> semesters = new Dictionary <int, Semester>(); Dictionary <int, SchoolYear> schoolYears = new Dictionary <int, SchoolYear>(); foreach (DataRow mappingData in objectiveMappingsTable.Rows) { string objectiveID = mappingData["ObjID"].ToString(); int semesterID = (int)mappingData["SemesterID"]; int categoryID = (int)mappingData["CategoryID"]; int weight = (int)mappingData["Weight"]; //Classifier optional int classifierID; try { classifierID = (int)mappingData["ClassificationID"]; //Get success objective classifier if it doesn't already exist if (!classifiers.ContainsKey(classifierID)) { DataTable classifierTable = dbSelect.SelectClassifier(classifierID); if (classifierTable != null && classifierTable.Rows.Count > 0) //Classifier exists { classifiers.Add(classifierID, getSuccessObjectiveClassifier(classifierTable.Rows[0])); } } } catch { classifierID = default; Console.WriteLine("Classifier ID not provided for objective: " + objectiveID); } SuccessObjective successObjective = null; //Get success objective DataTable objectiveTable = dbSelect.SelectObjective(objectiveID); if (objectiveTable != null && objectiveTable.Rows.Count > 0) //Objective exists { //Check if objective has a classifier SuccessObjectiveClassifier classifier = classifierID != default ? classifiers[classifierID] : null; successObjective = getSuccessObjective(objectiveTable.Rows[0], weight, classifier); } else { Console.WriteLine("Could not retrieve success objective with ID: " + objectiveID); } //Get success category if it doesn't already exist if (!categories.ContainsKey(categoryID)) { DataTable categoryTable = dbSelect.SelectCategory(categoryID); if (categoryTable != null && categoryTable.Rows.Count > 0) //Category exists { categories.Add(categoryID, getSuccessCategory(categoryTable.Rows[0])); } else { Console.WriteLine("Could not retrieve success category with ID: " + categoryID); } } //Get semester if it doesn't already exist if (!semesters.ContainsKey(semesterID)) { DataTable semesterTable = dbSelect.SelectSemester(semesterID); if (semesterTable != null && semesterTable.Rows.Count > 0) //Semester exists { int year; semesters.Add(semesterID, getSemester(semesterTable.Rows[0], out year)); //Get year if it doesn't already exist if (!schoolYears.ContainsKey(year)) { DataTable yearTable = dbSelect.SelectYear(year); if (yearTable != null && yearTable.Rows.Count > 0) //Year exists { schoolYears.Add(year, getSchoolYear(yearTable.Rows[0])); } else { Console.WriteLine("Could not retrieve school year with ID: " + year); } } //Add semester to year Semester semester = semesters[semesterID]; SchoolYear schoolYear = schoolYears[year]; semester.SchoolYear = schoolYear; //Associate semester with school year string lowerCaseName = semester.Name.ToLower(); if (lowerCaseName.Contains("fall")) { schoolYear.Fall = semester; } else if (lowerCaseName.Contains("spring")) { schoolYear.Spring = semester; } else if (lowerCaseName.Contains("summer")) { schoolYear.Summer = semester; } } } SuccessCategory category = categories[categoryID]; Semester objectiveSemester = semesters[semesterID]; //Add success objective to the success map if all the required data is present if (successObjective != null && category != null && objectiveSemester != null) { successMap.addSuccessObjective(category, objectiveSemester, successObjective); } else { Console.WriteLine("Could not add success objective to success map, missing required data."); } } //Add classifiers to success map successMap.addSuccessObjectiveClassifiers(classifiers.Values); } }
public SchoolYear(int year, string studentClass, Semester fall, Semester spring, Semester summer) { Year = year; StudentClass = studentClass; Fall = fall; Spring = spring; Summer = summer; }