using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using LehrerApp.Core.Services; namespace LehrerApp.Desktop.ViewModels.ClassTeacher; /// Dialog zum Anpassen der für den "Gesamtbild"-Reiter /// der Klassenlehreransicht — ursprünglich feste Konstanten, auf Nutzerwunsch jetzt einstellbar. public partial class PatternScoreWeightsDialogViewModel : ObservableObject { private readonly PatternScoreSettingsService _settings; [ObservableProperty] private double _unexcusedDayWeight; [ObservableProperty] private double _excusedDayWeight; [ObservableProperty] private double _lateDayWeight; [ObservableProperty] private double _negativeClassRegisterEntryWeight; [ObservableProperty] private double _concerningKeywordBonus; [ObservableProperty] private double _suspensionKeywordWeight; public PatternScoreWeightsDialogViewModel(PatternScoreSettingsService settings) { _settings = settings; var weights = settings.Load(); UnexcusedDayWeight = weights.UnexcusedDayWeight; ExcusedDayWeight = weights.ExcusedDayWeight; LateDayWeight = weights.LateDayWeight; NegativeClassRegisterEntryWeight = weights.NegativeClassRegisterEntryWeight; ConcerningKeywordBonus = weights.ConcerningKeywordBonus; SuspensionKeywordWeight = weights.SuspensionKeywordWeight; } [RelayCommand] private void Save() => _settings.Save(new PatternScoreWeights { UnexcusedDayWeight = UnexcusedDayWeight, ExcusedDayWeight = ExcusedDayWeight, LateDayWeight = LateDayWeight, NegativeClassRegisterEntryWeight = NegativeClassRegisterEntryWeight, ConcerningKeywordBonus = ConcerningKeywordBonus, SuspensionKeywordWeight = SuspensionKeywordWeight, }); }