Implemented program

This commit is contained in:
MarcUs7i 2025-04-26 11:56:00 +02:00
parent d0c4877369
commit 7b322690b7

View file

@ -56,10 +56,20 @@ static void WriteRule(string text)
static IEnumerable<Teacher> 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<Teacher> 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<string>()
.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()