Merge remote-tracking branch 'origin/main'

This commit is contained in:
2026-02-28 18:26:12 +01:00
4 changed files with 440 additions and 20 deletions

View File

@@ -2,6 +2,7 @@ using System;
using System.Collections.Generic;
using System.Diagnostics;
using Avalonia.Controls;
using Avalonia.Input;
using Avalonia.Interactivity;
using Avalonia.Platform.Storage;
@@ -119,6 +120,30 @@ public partial class MainWindow : Window
private void BtnCraftCourses_OnClick(object? sender, RoutedEventArgs e)
{
// Craft courses here / call course-crafter
CourseCrafter.Craft();
RefreshResultView();
TbiResults.Focus();
}
private void RefreshResultView()
{
LbResult.Items.Clear();
foreach (Student s in Settings.Instance.Students)
{
try
{
for(int i = 0; i<s.Result.Count;i++)
{
LbResult.Items.Add($"{s.Name} ({s.ID}) - {i+1}. Semester: {s.Result[i]}");
}
}
catch (Exception ex)
{
Console.WriteLine(ex.StackTrace);
}
}
TbResultStatistics.Text = CourseCrafter.GenerateStatistics();
}
private void LbStudentsImported_OnSelectionChanged(object? sender, SelectionChangedEventArgs e)
@@ -172,9 +197,6 @@ public partial class MainWindow : Window
try
{
((Student)LbStudentsImported.SelectedItem).Name = TbStudentName.Text;
//int current = LbStudentsImported.SelectedIndex;
//RefreshImportedStudentList();
//LbStudentsImported.SelectedIndex = current;
}
catch
{
@@ -186,13 +208,54 @@ public partial class MainWindow : Window
try
{
((Student)LbStudentsImported.SelectedItem).Name = TbStudentID.Text;
//int current = LbStudentsImported.SelectedIndex;
//RefreshImportedStudentList();
//LbStudentsImported.SelectedIndex = current;
}
catch
{
}
}
private void BtnImportDefaultCourses_OnClick(object? sender, RoutedEventArgs e)
{
Settings.ImportInitial();
RefreshCoursesList();
}
private void RefreshCoursesList()
{
LbSportCourses.Items.Clear();
foreach (var sp in Settings.Instance.Sports)
{
LbSportCourses.Items.Add(sp);
}
}
private void LbSportCourses_OnSelectionChanged(object? sender, SelectionChangedEventArgs e)
{
if (LbSportCourses.SelectedItem != null)
{
if (LbSportCourses.SelectedItem is Sport item)
{
LblSportID.Content = item.ID;
TbSportName.Text = item.Name;
NudSportMaxStudents.Value = item.MaxStudents;
NudSportMinStudents.Value = item.MinStudents;
NudAmountCoursesSem1.Value = item.Semester[0];
NudAmountCoursesSem2.Value = item.Semester[1];
NudAmountCoursesSem3.Value = item.Semester[2];
NudAmountCoursesSem4.Value = item.Semester[3];
LbAlternativeCourses.Items.Clear();
foreach (var alternative in item.AlternativeCourses)
{
LbAlternativeCourses.Items.Add(Settings.GetSportNameFromID(alternative));
}
LbAlternativeNames.Items.Clear();
foreach (var alternative in item.AlternativeNames)
{
LbAlternativeNames.Items.Add(alternative);
}
}
}
}
}