public StudentRecord CreateStudentRecord(List <string> strings) { if (strings == null) { throw new ArgumentException("CreateStudentRecord cannot be run on a null string list"); } GradingScheme gradingScheme = new GradingScheme(); string exceptionMessage = ""; Gender gender = Gender.male; int creditHrs = 0; if (strings.Count < 7) { throw new ArgumentException(DefaultValues.ExceptionMessages[18]); } try { gender = (Gender)Enum.Parse(typeof(Gender), strings[2].ToLower()); } catch (Exception) { exceptionMessage += DefaultValues.ExceptionMessages[19] + "\n"; } try { creditHrs = Convert.ToInt32(strings[6]); } catch (Exception) { exceptionMessage += DefaultValues.ExceptionMessages[20]; } if (exceptionMessage.Length > 1) { throw new ArgumentException(exceptionMessage); } StudentRecord studRecord = new StudentRecord(strings[0], strings[1], gender, strings[3], strings[4], strings[5], creditHrs); bool readingRecord = false; TrimesterPerformance trimPerformance; List <String> tempStrings = new List <string>(); string curString; for (int i = 6; i < strings.Count; i++) { curString = strings[i].Trim(); if (readingRecord) { if (curString == DefaultValues.markTrimesterEnd) { trimPerformance = CreateTrimesterPerformance(tempStrings); studRecord.AddTrimesterPerformance(trimPerformance); readingRecord = false; } else if (curString.Length > 5) { tempStrings.Add(curString); } } else if (curString == DefaultValues.markTrimesterStart) { readingRecord = true; tempStrings = new List <string>(); } } return(studRecord); }
public List <StudentRecord> GenerateStudentRecords(int numToGenerate, StudentRecord courseStructure, List <string> maleNames, List <string> femaleNames, List <string> surNames) { if ((numToGenerate < 0) || (courseStructure == null) || (maleNames == null) || (femaleNames == null) || (surNames == null)) { throw new ArgumentException("GenerateStudentRecords cannot be run with null or invalid arguments"); } List <StudentRecord> records = new List <StudentRecord>(); StudentRecord studRecord; string studName = ""; string idnumber = ""; Gender studGender; for (int i = 0; i < numToGenerate; i++) { studGender = (Gender)rndFunction.ReturnRandomNumber(0, 2); if (studGender == Gender.male) { studName = maleNames[rndFunction.ReturnRandomNumber(0, maleNames.Count)]; } else if (studGender == Gender.female) { studName = femaleNames[rndFunction.ReturnRandomNumber(0, femaleNames.Count)]; } studName += " " + surNames[rndFunction.ReturnRandomNumber(0, surNames.Count)]; idnumber = courseStructure.programme + rndFunction.ReturnRandomNumber(1000, 10000) + i; studRecord = new StudentRecord(studName, idnumber, studGender, studName + DefaultValues.dummyEmailAdd, DefaultValues.dummyContactNumber, courseStructure.programme, courseStructure.creditHrsToGraduate); List <UnitGrade> newGradeList = new List <UnitGrade>(); UnitGrade tempGrade; TrimesterPerformance tempTrimester; int gradeMark; foreach (TrimesterPerformance tpf in courseStructure.trimesterPerformanceList) { tempTrimester = new TrimesterPerformance(tpf.year, tpf.month, tpf.trimester); newGradeList = new List <UnitGrade>(); foreach (UnitGrade ugrade in tpf.unitGrades) { if (rndFunction.ReturnRandomNumber(0, 5) == 1) { gradeMark = rndFunction.ReturnRandomNumber(0, 51); } else { gradeMark = rndFunction.ReturnRandomNumber(51, 100); } tempGrade = new UnitGrade(ugrade.unitCode, ugrade.unitName, gradeMark); tempGrade.CalculateGrade(); newGradeList.Add(tempGrade); } tempTrimester.unitGrades = newGradeList; studRecord.AddTrimesterPerformance(tempTrimester); } records.Add(studRecord); } return(records); }