diff --git a/MeetTheTeacher/Program.cs b/MeetTheTeacher/Program.cs index 136f106..ec7b514 100644 --- a/MeetTheTeacher/Program.cs +++ b/MeetTheTeacher/Program.cs @@ -56,10 +56,20 @@ static void WriteRule(string text) static IEnumerable LoadData(bool realData) { - // TODO - // ITeacherDataImporter importer ... - // files: "Data/teachers.csv" & "Data/teachers-with-business-card.csv" - return null!; + string generalDataFilePath = "Data/teachers.csv"; + string businessCardDataFilePath = "Data/teachers-with-business-card.csv"; + + if (!File.Exists(generalDataFilePath)) + { + AnsiConsole.MarkupLine($"[red]Error:[/] File '{generalDataFilePath}' not found"); + return []; + } + + ITeacherDataImporter importer = realData + ? new TeacherDataCsvImporter(generalDataFilePath, businessCardDataFilePath) + : new TeacherDataFakeImporter(); + + return importer.LoadTeacherData(); } static Task DisplayFakeProgress() @@ -90,7 +100,15 @@ static void PrintStatistics(IReadOnlyCollection teachers) var hasBusinessCard = 0; foreach (var teacher in teachers) { - // TODO + if (teacher.ConsultingHour != null) + { + hasConsultingHours++; + } + + if (teacher is TeacherWithBusinessCard) + { + hasBusinessCard++; + } } double total = teachers.Count; @@ -130,8 +148,15 @@ static SortOrder AskForSortOrder() static ExportFormat AskForExportFormat() { - // TODO (similar to AskForDataToUse) - return default; + const string Csv = "Csv"; + const string Html = "Html"; + string dataToUse = AnsiConsole.Prompt(new SelectionPrompt() + .Title("Do you want to load [blue]real[/] or [blue]sample[/] data?") + .AddChoices(Csv, Html)); + + AnsiConsole.MarkupLine($"Selected: [green]{dataToUse}[/]"); + + return dataToUse == Csv ? ExportFormat.Csv : ExportFormat.Html; } static bool AskForDataToUse()