/// <summary> /// Parse the given filepath for a list of courses + assignments /// </summary> /// <returns></returns> public List <Course> Parse() { AllCourses.Clear(); //Clear list of courses prior to parsing DateParser DateParser = new DateParser(); try { Course currentCourse = null; //The current course being parsed using (StreamReader sr = new StreamReader(FilePath)) { String line = ""; while ((line = sr.ReadLine()) != null) { //A course has 4 capital letters in a row if (Has4CapitalLettersInARow(line)) { AllCourses.Add(ParseCourse(line)); currentCourse = AllCourses.Last(); } //Assignment else if (line.Trim() != string.Empty) { currentCourse.AddAssignment(ParseAssignment(line)); } } } } catch (Exception e) { Console.WriteLine("The file could not be read"); Console.WriteLine(e.Message); } return(AllCourses); }