public static StudentContainer ReadList(string fileName) { try { if (fileName == null) { fileName = DefaultFilename; } var file = new StreamReader(fileName); var students = new StudentContainer(); string line; int i = 1; while ((line = file.ReadLine()) != null) { var student = new Student(line, file.ReadLine(), file.ReadLine(), DateTime.ParseExact(file.ReadLine(), "dd MM yyyy", CultureInfo.InvariantCulture), DateTime.ParseExact(file.ReadLine(), "dd MM yyyy", CultureInfo.InvariantCulture), file.ReadLine(), file.ReadLine(), file.ReadLine(), Convert.ToInt32(file.ReadLine())); line = file.ReadLine(); if (line.Equals("")) { Console.WriteLine(i++ + " students read"); } students.AddStudent(student); } ; file.Close(); return(students); } catch (Exception e) { Console.WriteLine("An error occured while reading file: " + e.Message); } return(new StudentContainer()); }
public static void Start() { var pigsty = new StudentContainer(); const string fileName = @"C:\Users\Дмитрий Соколенко\source\repos\DotNet\sokolenko05DN\file.txt"; pigsty = FilesIO.ReadList(fileName); const string fileNameXml = @"C:\Users\Дмитрий Соколенко\source\repos\DotNet\sokolenko05DN\file.xml"; while (true) { PrintMainMenu(); int choice; try { choice = Io.EnterInt("choice"); switch (choice) { case 1: { PrintStudents(); int printChoice = Io.EnterInt("printChoice"); switch (printChoice) { case 0: { Io.PrintStudents(pigsty); break; } case 1: { Io.PrintStudents(StudentContainerProcessing.Search(Io.EnterString("group"), pigsty, printChoice - 1)); break; } case 2: { Io.PrintStudents(StudentContainerProcessing.Search(Io.EnterString("specialty"), pigsty, printChoice - 1)); break; } case 3: { Io.PrintStudents(StudentContainerProcessing.Search(Io.EnterString("faculty"), pigsty, printChoice - 1)); break; } } break; } case 2: { pigsty.AddStudent(CreateStudent()); break; } case 3: { Io.PrintStudents(pigsty); pigsty.DeleteStudentByIndex(Io.EnterInt("index") - 1); break; } case 4: { var index = GetIndex(pigsty); var student = pigsty.GetStudent(index); Console.WriteLine(student.ToString()); int edit = Io.EnterInt("1 if you want to edit"); if (edit == 1) { student = CreateStudent(); pigsty.SetStudent(index, student); } break; } case 5: { RemoveStudents(); int deleteChoice = Io.EnterInt("deleteChoice"); pigsty = StudentContainerProcessing.RemoveStudents(pigsty, StudentContainerProcessing.Search(Io.EnterString("choice"), pigsty, deleteChoice)); break; } case 6: { AvgCalculateOperations(); int avgOperations = Io.EnterInt("avgChoice");; StudentContainerProcessing.Del del = null; switch (avgOperations) { case 0: { del = StudentContainerProcessing.CalculateAverageAge; break; } case 1: { del = StudentContainerProcessing.CalculateAverageAcademicPerformance; break; } } RemoveStudents(); int searchChoice = Io.EnterInt("searchChoice"); Console.WriteLine(del?.Invoke(StudentContainerProcessing.Search(Io.EnterString("choice"), pigsty, searchChoice))); break; } case 7: { FilesIO.SaveCollectionInXML(pigsty, fileNameXml); break; } case 8: { pigsty = FilesIO.LoadCollectionFromXML(fileNameXml); break; } case 0: { FilesIO.WriteList(pigsty, fileName); return; } } } catch (Exception e) { Console.WriteLine(e.Message); } } }