private static void AddStudentsFromFile( TextWriter writer, string filename, IStudentStore students ) { try { using (StreamReader sr = File.OpenText(filename)) { var header = Tokenize(sr.ReadLine()); if (!IsValidHeaderRow(header)) { writer.WriteLine("Invalid header \n'{0}'.\nPlease correct it and try again.", header); return; } while (!sr.EndOfStream) { var line = sr.ReadLine(); var row = Tokenize(line); if (!IsValidStudentRow(header.Length, row)) { writer.WriteLine("Invalid row \n'{0}'.\nPlease correct it and try again.", line); return; } var student = ReadRowAsStudent(row); students.Add(student); } } } catch (Exception ex) { writer.WriteLine("Error while reading the file: {0}", ex.Message); } }
public async Task <ActionResult <int> > Add([FromBody] Student Student) { _Logger.LogInformation("Добавление студента {0}", Student); var id = await _StudentStore.Add(Student); _Logger.LogInformation("Студент {0} добавлен", Student); return(id); }
private static void BranchMenu( TextReader reader, TextWriter writer, ClearOutput clearOut, InteractiveIO io, IStudentStore students ) { clearOut(); writer.WriteLine("Total students: {0}\n", students.Length); writer.WriteLine("Which task would you like to execute?"); writer.WriteLine("{0}) Add a new student", (int)MenuChoice.AddStudent); writer.WriteLine("{0}) Read students from file", (int)MenuChoice.ReadStudentsFile); writer.WriteLine("{0}) Print results of students", (int)MenuChoice.PrintResults); writer.WriteLine("{0}) Benchmark", (int)MenuChoice.Benchmark); writer.WriteLine("{0}) Exit program\n", (int)MenuChoice.Exit); writer.Write("Menu choice: "); #pragma warning disable IDE0018 // Inline variable declaration int menuChoice; #pragma warning restore IDE0018 // Inline variable declaration if (!int.TryParse(reader.ReadLine(), out menuChoice)) { writer.WriteLine("Error parsing the choice, please try again..."); reader.Read(); } else { switch (menuChoice) { case (int)MenuChoice.AddStudent: { var student = ReadStudentInteractive(io); students.Add(student); break; } case (int)MenuChoice.ReadStudentsFile: { var filename = io.ReadLineInteractive("File name: "); AddStudentsFromFile(writer, filename, students); writer.WriteLine("Press any key to continue."); reader.Read(); break; } case (int)MenuChoice.PrintResults: { var sortedStudents = students.All() .OrderBy(x => x.surname) .ThenBy(x => x.name); StudentSummaryPrinter.PrintSummary(writer, sortedStudents); reader.Read(); break; } case (int)MenuChoice.Benchmark: { BenchmarkSuite(reader, writer); reader.Read(); break; } case (int)MenuChoice.Exit: return; default: writer.WriteLine("Wrong choice, please try again..."); reader.Read(); break; } } BranchMenu(reader, writer, clearOut, io, students); }