Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }