From c2b6486edef5b76322a8a4224a21424c202a316c Mon Sep 17 00:00:00 2001 From: Lorenz Stechauner Date: Thu, 28 Mar 2024 13:41:05 +0100 Subject: [PATCH] Helpers: Add enum ExportMode --- Elwig/Helpers/ExportMode.cs | 5 +++ Elwig/Windows/DeliveryAdminWindow.xaml.cs | 42 ++++++++++---------- Elwig/Windows/MemberAdminWindow.xaml.cs | 48 +++++++++++------------ 3 files changed, 50 insertions(+), 45 deletions(-) create mode 100644 Elwig/Helpers/ExportMode.cs diff --git a/Elwig/Helpers/ExportMode.cs b/Elwig/Helpers/ExportMode.cs new file mode 100644 index 0000000..f949bb9 --- /dev/null +++ b/Elwig/Helpers/ExportMode.cs @@ -0,0 +1,5 @@ +namespace Elwig.Helpers { + public enum ExportMode { + Show, SaveList, SavePdf, Print, Email + } +} diff --git a/Elwig/Windows/DeliveryAdminWindow.xaml.cs b/Elwig/Windows/DeliveryAdminWindow.xaml.cs index 0293833..5ee198f 100644 --- a/Elwig/Windows/DeliveryAdminWindow.xaml.cs +++ b/Elwig/Windows/DeliveryAdminWindow.xaml.cs @@ -146,31 +146,31 @@ namespace Elwig.Windows { private async void Menu_DeliveryNote_Show_Click(object sender, RoutedEventArgs evt) { if (DeliveryList.SelectedItem is not Delivery d) return; - await GenerateDeliveryNote(d.Year, d.DId, 0); + await GenerateDeliveryNote(d.Year, d.DId, ExportMode.Show); } private async void Menu_DeliveryNote_Print_Click(object sender, RoutedEventArgs evt) { if (DeliveryList.SelectedItem is not Delivery d) return; - await GenerateDeliveryNote(d.Year, d.DId, 1); + await GenerateDeliveryNote(d.Year, d.DId, ExportMode.Print); } private async void Menu_DeliveryNote_Email_Click(object sender, RoutedEventArgs evt) { if (DeliveryList.SelectedItem is not Delivery d) return; - await GenerateDeliveryNote(d.Year, d.DId, 2); + await GenerateDeliveryNote(d.Year, d.DId, ExportMode.Email); } - private static async Task GenerateDeliveryNote(int year, int did, int mode) { + private static async Task GenerateDeliveryNote(int year, int did, ExportMode mode) { Mouse.OverrideCursor = Cursors.AppStarting; try { using var ctx = new AppDbContext(); var d = (await ctx.Deliveries.FindAsync(year, did))!; using var doc = new DeliveryNote(d, ctx); await doc.Generate(); - if (mode == 1 && !App.Config.Debug) { + if (mode == ExportMode.Print && !App.Config.Debug) { await doc.Print(); - } else if (mode == 2) { + } else if (mode == ExportMode.Email) { var success = await Utils.SendEmail(d.Member, $"{DeliveryNote.Name} Nr. {d.LsNr}", $"Im Anhang finden Sie den {DeliveryNote.Name} Nr. {d.LsNr}", [doc]); if (success) MessageBox.Show("Die E-Mail wurde erfolgreich verschickt!", "E-Mail verschickt", @@ -202,30 +202,30 @@ namespace Elwig.Windows { } private async void Menu_DeliveryJournal_SaveToday_Click(object sender, RoutedEventArgs evt) { - await GenerateDeliveryJournal(1, 0); + await GenerateDeliveryJournal(1, ExportMode.SaveList); } private async void Menu_DeliveryJournal_ShowToday_Click(object sender, RoutedEventArgs evt) { - await GenerateDeliveryJournal(1, 1); + await GenerateDeliveryJournal(1, ExportMode.Show); } private async void Menu_DeliveryJournal_PrintToday_Click(object sender, RoutedEventArgs evt) { - await GenerateDeliveryJournal(1, 2); + await GenerateDeliveryJournal(1, ExportMode.Print); } private async void Menu_DeliveryJournal_SaveFilters_Click(object sender, RoutedEventArgs evt) { - await GenerateDeliveryJournal(0, 0); + await GenerateDeliveryJournal(0, ExportMode.SaveList); } private async void Menu_DeliveryJournal_ShowFilters_Click(object sender, RoutedEventArgs evt) { - await GenerateDeliveryJournal(0, 1); + await GenerateDeliveryJournal(0, ExportMode.Show); } private async void Menu_DeliveryJournal_PrintFilters_Click(object sender, RoutedEventArgs evt) { - await GenerateDeliveryJournal(0, 2); + await GenerateDeliveryJournal(0, ExportMode.Print); } - private async Task GenerateDeliveryJournal(int modeWho, int modeWhat) { + private async Task GenerateDeliveryJournal(int modeWho, ExportMode exportMode) { using var ctx = new AppDbContext(); IQueryable query; List filterNames = []; @@ -246,7 +246,7 @@ namespace Elwig.Windows { .ThenBy(p => p.Delivery.LsNr) .ThenBy(p => p.DPNr); - if (modeWhat == 0) { + if (exportMode == ExportMode.SaveList) { var d = new SaveFileDialog() { FileName = $"{DeliveryJournal.Name}.ods", DefaultExt = "ods", @@ -270,7 +270,7 @@ namespace Elwig.Windows { var data = await DeliveryJournalData.FromQuery(query, filterNames); using var doc = new DeliveryJournal(string.Join(" / ", filterNames), data); await doc.Generate(); - if (modeWhat == 2 && !App.Config.Debug) { + if (exportMode == ExportMode.Print && !App.Config.Debug) { await doc.Print(); } else { doc.Show(); @@ -283,22 +283,22 @@ namespace Elwig.Windows { } private async void Menu_WineQualityStatistics_ShowToday_Click(object sender, RoutedEventArgs evt) { - await GenerateWineQualityStatistics(1, 1); + await GenerateWineQualityStatistics(1, ExportMode.Show); } private async void Menu_WineQualityStatistics_PrintToday_Click(object sender, RoutedEventArgs evt) { - await GenerateWineQualityStatistics(1, 2); + await GenerateWineQualityStatistics(1, ExportMode.Print); } private async void Menu_WineQualityStatistics_ShowFilters_Click(object sender, RoutedEventArgs evt) { - await GenerateWineQualityStatistics(0, 1); + await GenerateWineQualityStatistics(0, ExportMode.Show); } private async void Menu_WineQualityStatistics_PrintFilters_Click(object sender, RoutedEventArgs evt) { - await GenerateWineQualityStatistics(0, 2); + await GenerateWineQualityStatistics(0, ExportMode.Print); } - private async Task GenerateWineQualityStatistics(int modeWho, int modeWhat) { + private async Task GenerateWineQualityStatistics(int modeWho, ExportMode exportMode) { using var ctx = new AppDbContext(); IQueryable query; List filterNames = []; @@ -318,7 +318,7 @@ namespace Elwig.Windows { var data = await WineQualityStatisticsData.FromQuery(query); using var doc = new WineQualityStatistics(string.Join(" / ", filterNames), data); await doc.Generate(); - if (modeWhat == 2 && !App.Config.Debug) { + if (exportMode == ExportMode.Print && !App.Config.Debug) { await doc.Print(); } else { doc.Show(); diff --git a/Elwig/Windows/MemberAdminWindow.xaml.cs b/Elwig/Windows/MemberAdminWindow.xaml.cs index 453a9dc..14a0eaa 100644 --- a/Elwig/Windows/MemberAdminWindow.xaml.cs +++ b/Elwig/Windows/MemberAdminWindow.xaml.cs @@ -570,30 +570,30 @@ namespace Elwig.Windows { private async void Menu_MemberDataSheet_Show_Click(object sender, RoutedEventArgs evt) { if (MemberList.SelectedItem is not Member m) return; - await GenerateMemberDataSheet(m, 0); + await GenerateMemberDataSheet(m, ExportMode.Show); } private async void Menu_MemberDataSheet_Print_Click(object sender, RoutedEventArgs evt) { if (MemberList.SelectedItem is not Member m) return; - await GenerateMemberDataSheet(m, 1); + await GenerateMemberDataSheet(m, ExportMode.Print); } private async void Menu_MemberDataSheet_Email_Click(object sender, RoutedEventArgs evt) { if (MemberList.SelectedItem is not Member m) return; - await GenerateMemberDataSheet(m, 2); + await GenerateMemberDataSheet(m, ExportMode.Email); } - private static async Task GenerateMemberDataSheet(Member m, int mode) { + private static async Task GenerateMemberDataSheet(Member m, ExportMode mode) { Mouse.OverrideCursor = Cursors.AppStarting; try { using var ctx = new AppDbContext(); using var doc = new MemberDataSheet(m, ctx); await doc.Generate(); - if (mode == 1 && !App.Config.Debug) { + if (mode == ExportMode.Print && !App.Config.Debug) { await doc.Print(); - } else if (mode == 2) { + } else if (mode == ExportMode.Email) { var success = await Utils.SendEmail(m, MemberDataSheet.Name, "Im Anhang finden Sie das aktuelle Stammdatenblatt", [doc]); if (success) MessageBox.Show("Die E-Mail wurde erfolgreich verschickt!", "E-Mail verschickt", @@ -611,33 +611,33 @@ namespace Elwig.Windows { var season = ((sender as MenuItem)?.Parent as MenuItem)?.Header?.ToString()?.Split(' ')[^1].Split('.')[0]; if (MemberList.SelectedItem is not Member m || season == null || !int.TryParse(season, out var s)) return; - await GenerateDeliveryConfirmation(m, s, 0); + await GenerateDeliveryConfirmation(m, s, ExportMode.Show); } private async void Menu_DeliveryConfirmation_Print_Click(object sender, RoutedEventArgs evt) { var season = ((sender as MenuItem)?.Parent as MenuItem)?.Header?.ToString()?.Split(' ')[^1].Split('.')[0]; if (MemberList.SelectedItem is not Member m || season == null || !int.TryParse(season, out var s)) return; - await GenerateDeliveryConfirmation(m, s, 1); + await GenerateDeliveryConfirmation(m, s, ExportMode.Print); } private async void Menu_DeliveryConfirmation_Email_Click(object sender, RoutedEventArgs evt) { var season = ((sender as MenuItem)?.Parent as MenuItem)?.Header?.ToString()?.Split(' ')[^1].Split('.')[0]; if (MemberList.SelectedItem is not Member m || season == null || !int.TryParse(season, out var s)) return; - await GenerateDeliveryConfirmation(m, s, 2); + await GenerateDeliveryConfirmation(m, s, ExportMode.Email); } - private static async Task GenerateDeliveryConfirmation(Member m, int year, int mode) { + private static async Task GenerateDeliveryConfirmation(Member m, int year, ExportMode mode) { Mouse.OverrideCursor = Cursors.AppStarting; try { using var ctx = new AppDbContext(); var data = await DeliveryConfirmationDeliveryData.ForMember(ctx.DeliveryParts, year, m); using var doc = new DeliveryConfirmation(ctx, year, m, data); await doc.Generate(); - if (mode == 1 && !App.Config.Debug) { + if (mode == ExportMode.Print && !App.Config.Debug) { await doc.Print(); - } else if (mode == 2) { + } else if (mode == ExportMode.Email) { var success = await Utils.SendEmail(m, $"{DeliveryConfirmation.Name} {year}", $"Im Anhang finden Sie die Anlieferungsbestätigung {year}", [doc]); if (success) MessageBox.Show("Die E-Mail wurde erfolgreich verschickt!", "E-Mail verschickt", @@ -651,15 +651,15 @@ namespace Elwig.Windows { Mouse.OverrideCursor = null; } - private async void Menu_List_SaveActive_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(0, 0); } - private async void Menu_List_ShowActive_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(0, 1); } - private async void Menu_List_PrintActive_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(0, 2); } - private async void Menu_List_SaveFilters_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(1, 0); } - private async void Menu_List_ShowFilters_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(1, 1); } - private async void Menu_List_PrintFilters_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(1, 2); } - private async void Menu_List_SaveAll_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(2, 0); } - private async void Menu_List_ShowAll_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(2, 1); } - private async void Menu_List_PrintAll_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(2, 2); } + private async void Menu_List_SaveActive_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(0, ExportMode.SaveList); } + private async void Menu_List_ShowActive_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(0, ExportMode.Show); } + private async void Menu_List_PrintActive_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(0, ExportMode.Print); } + private async void Menu_List_SaveFilters_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(1, ExportMode.SaveList); } + private async void Menu_List_ShowFilters_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(1, ExportMode.Show); } + private async void Menu_List_PrintFilters_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(1, ExportMode.Print); } + private async void Menu_List_SaveAll_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(2, ExportMode.SaveList); } + private async void Menu_List_ShowAll_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(2, ExportMode.Show); } + private async void Menu_List_PrintAll_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(2, ExportMode.Print); } private async void Menu_List_Order_Click(object sender, RoutedEventArgs evt) { Menu_List.IsSubmenuOpen = true; @@ -682,7 +682,7 @@ namespace Elwig.Windows { await App.Client.UpdateValues(); } - private async Task GenerateMemberList(int modeWho, int modeWhat) { + private async Task GenerateMemberList(int modeWho, ExportMode exportMode) { using var ctx = new AppDbContext(); IQueryable query; List filterNames = []; @@ -716,7 +716,7 @@ namespace Elwig.Windows { .ThenBy(m => m.MgNr); } - if (modeWhat == 0) { + if (exportMode == ExportMode.SaveList) { var d = new SaveFileDialog() { FileName = $"{Documents.MemberList.Name}.ods", DefaultExt = "ods", @@ -740,7 +740,7 @@ namespace Elwig.Windows { var data = await MemberListData.FromQuery(query, filterNames); using var doc = new MemberList(string.Join(" / ", filterNames), data); await doc.Generate(); - if (modeWhat == 2 && !App.Config.Debug) { + if (exportMode == ExportMode.Print && !App.Config.Debug) { await doc.Print(); } else { doc.Show();