using Avalonia.Controls; using LehrerApp.Core.Interfaces; using LehrerApp.Core.Models; using LehrerApp.Desktop.ViewModels.Students; using LehrerApp.Desktop.Views.Students; using LehrerApp.Templating; using Microsoft.Extensions.DependencyInjection; namespace LehrerApp.Desktop.Services; /// Öffnet den bestehenden Elternbrief-Dialog für einen Schüler, egal ob der Aufruf aus /// der Schülerdetailansicht (Student schon im DataContext) oder aus dem Formulare-Menü (Student /// erst per Picker gewählt) kommt. public static class LetterDialogs { public static async Task ShowCreateLetterDialogAsync(Window owner, Student student) { var vm = new CreateLetterDialogViewModel(student, App.Services.GetRequiredService(), App.Services.GetRequiredService(), App.Services.GetRequiredService(), App.Services.GetRequiredService(), options => App.Services.GetRequiredService().Build(student, options), options => App.Services.GetRequiredService() .BuildAbsenceDayList(student, options)); var dialog = new CreateLetterDialog { DataContext = vm }; var path = await dialog.ShowDialog(owner); if (!string.IsNullOrEmpty(path) && File.Exists(path)) System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(path) { UseShellExecute = true }); } }