diff --git a/Elwig/Services/DeliveryAncmtService.cs b/Elwig/Services/DeliveryAncmtService.cs index 65608bb..07f2ed7 100644 --- a/Elwig/Services/DeliveryAncmtService.cs +++ b/Elwig/Services/DeliveryAncmtService.cs @@ -32,7 +32,7 @@ namespace Elwig.Services { vm.StatusAncmtModified = "-"; } - public static async Task FillInputs(this DeliveryAncmtAdminViewModel vm, DeliveryAncmt a) { + public static void FillInputs(this DeliveryAncmtAdminViewModel vm, DeliveryAncmt a) { vm.MgNr = a.MgNr; vm.DeliverySchedule = (DeliverySchedule?)ControlUtils.GetItemFromSourceWithPk(vm.DeliveryScheduleSource, a.Year, a.DsNr); vm.SortId = a.SortId; diff --git a/Elwig/Services/DeliveryScheduleService.cs b/Elwig/Services/DeliveryScheduleService.cs index 07d4dc5..d47d94b 100644 --- a/Elwig/Services/DeliveryScheduleService.cs +++ b/Elwig/Services/DeliveryScheduleService.cs @@ -21,7 +21,7 @@ namespace Elwig.Services { public static void ClearInputs(this DeliveryScheduleAdminViewModel vm) { } - public static async Task FillInputs(this DeliveryScheduleAdminViewModel vm, DeliverySchedule s) { + public static void FillInputs(this DeliveryScheduleAdminViewModel vm, DeliverySchedule s) { vm.Date = s.Date; vm.Branch = (Branch?)ControlUtils.GetItemFromSourceWithPk(vm.BranchSource, s.ZwstId); vm.Description = s.Description; diff --git a/Elwig/Services/MemberService.cs b/Elwig/Services/MemberService.cs index 7a6e1e4..024d926 100644 --- a/Elwig/Services/MemberService.cs +++ b/Elwig/Services/MemberService.cs @@ -51,7 +51,7 @@ namespace Elwig.Services { vm.Age = "-"; } - public static async Task FillInputs(this MemberAdminViewModel vm, Member m) { + public static void FillInputs(this MemberAdminViewModel vm, Member m) { vm.IsMemberSelected = true; vm.MgNrString = $"{m.MgNr}"; vm.PredecessorMgNrString = $"{m.PredecessorMgNr}"; @@ -137,8 +137,19 @@ namespace Elwig.Services { vm.ContactViaPost = m.ContactViaPost; vm.ContactViaEmail = m.ContactViaEmail; - Dictionary deliveries; - using (var ctx = new AppDbContext()) { + vm.StatusDeliveriesLastSeasonInfo = "letzte Saison"; + vm.StatusDeliveriesLastSeason = "-"; + vm.StatusDeliveriesLastSeasonToolTip = null; + vm.StatusDeliveriesThisSeasonInfo = "aktuelle Saison"; + vm.StatusDeliveriesThisSeason = "-"; + vm.StatusDeliveriesThisSeasonToolTip = null; + vm.StatusAreaCommitmentInfo = "aktuelle Saison"; + vm.StatusAreaCommitment = "-"; + vm.StatusAreaCommitmentToolTip = null; + + App.MainDispatcher.BeginInvoke(async () => { + using var ctx = new AppDbContext(); + var d1 = ctx.Deliveries.Where(d => d.Year == Utils.CurrentLastSeason - 1 && d.MgNr == m.MgNr); var (_, d1Grid, _, _) = await DeliveryService.GenerateToolTip(d1.SelectMany(d => d.Parts)); vm.StatusDeliveriesLastSeasonInfo = $"{Utils.CurrentLastSeason - 1}"; @@ -161,17 +172,19 @@ namespace Elwig.Services { vm.StatusAreaCommitmentInfo = $"{Utils.CurrentLastSeason}"; vm.StatusAreaCommitment = text; vm.StatusAreaCommitmentToolTip = grid; + }); + Dictionary deliveries; + using (var ctx = new AppDbContext()) { deliveries = ctx.Deliveries .Where(d => d.MgNr == m.MgNr) - .SelectMany(d => d.Parts) .GroupBy(d => d.Year) - .ToDictionary(g => g.Key, g => g.Sum(d => d.Weight)); + .ToDictionary(g => g.Key, g => g.Any()); } vm.MemberHasEmail = m.EmailAddresses.Count > 0; vm.MemberCanSendEmail = App.Config.Smtp != null && m.EmailAddresses.Count > 0; - vm.MemberHasDeliveries = Enumerable.Range(0, 9999).Select(i => deliveries.GetValueOrDefault(i, 0) > 0).ToList(); + vm.MemberHasDeliveries = Enumerable.Range(0, 9999).Select(i => deliveries.GetValueOrDefault(i, false)).ToList(); } public static async Task<(List, IQueryable, List)> GetFilters(this MemberAdminViewModel vm, AppDbContext ctx) { diff --git a/Elwig/Windows/DeliveryAncmtAdminWindow.xaml.cs b/Elwig/Windows/DeliveryAncmtAdminWindow.xaml.cs index 676bd85..7a82373 100644 --- a/Elwig/Windows/DeliveryAncmtAdminWindow.xaml.cs +++ b/Elwig/Windows/DeliveryAncmtAdminWindow.xaml.cs @@ -144,12 +144,12 @@ namespace Elwig.Windows { } } - private async Task RefreshInputs(bool validate = false) { + private void RefreshInputs(bool validate = false) { ClearInputStates(); if (ViewModel.SelectedDeliveryAncmt is DeliveryAncmt a) { EditDeliveryAncmtButton.IsEnabled = true; DeleteDeliveryAncmtButton.IsEnabled = true; - await FillInputs(a); + FillInputs(a); } else { EditDeliveryAncmtButton.IsEnabled = false; DeleteDeliveryAncmtButton.IsEnabled = false; @@ -185,8 +185,8 @@ namespace Elwig.Windows { await RefreshList(); } - private async void DeliveryAncmtList_SelectionChanged(object sender, RoutedEventArgs evt) { - await RefreshInputs(); + private void DeliveryAncmtList_SelectionChanged(object sender, RoutedEventArgs evt) { + RefreshInputs(); } private async void DeliveryScheduleList_SelectionChanged(object sender, RoutedEventArgs evt) { @@ -361,7 +361,7 @@ namespace Elwig.Windows { ViewModel.EnableSearchInputs = true; FinishInputFilling(); await RefreshList(); - await RefreshInputs(); + RefreshInputs(); ViewModel.SearchQuery = ""; ControlUtils.SelectItemWithPk(DeliveryScheduleList, year, dsnr); if (sortid != null) @@ -374,9 +374,9 @@ namespace Elwig.Windows { ResetButton_Click(null, null); } - private async void ResetButton_Click(object? sender, RoutedEventArgs? evt) { + private void ResetButton_Click(object? sender, RoutedEventArgs? evt) { if (IsEditing) { - await RefreshInputs(); + RefreshInputs(); } else if (IsCreating) { ClearInputs(); InitInputs(); @@ -401,15 +401,15 @@ namespace Elwig.Windows { HideSaveResetCancelButtons(); ShowNewEditDeleteButtons(); - await RefreshInputs(); + RefreshInputs(); LockInputs(); ViewModel.EnableSearchInputs = true; } - private async Task FillInputs(DeliveryAncmt a) { + private void FillInputs(DeliveryAncmt a) { ClearOriginalValues(); ClearDefaultValues(); - await ViewModel.FillInputs(a); + ViewModel.FillInputs(a); FinishInputFilling(); } diff --git a/Elwig/Windows/DeliveryScheduleAdminWindow.xaml.cs b/Elwig/Windows/DeliveryScheduleAdminWindow.xaml.cs index 5c37017..f909ce6 100644 --- a/Elwig/Windows/DeliveryScheduleAdminWindow.xaml.cs +++ b/Elwig/Windows/DeliveryScheduleAdminWindow.xaml.cs @@ -72,12 +72,12 @@ namespace Elwig.Windows { DeliveryScheduleList.ScrollIntoView(DeliveryScheduleList.SelectedItem); } - private async Task RefreshInputs(bool validate = false) { + private void RefreshInputs(bool validate = false) { ClearInputStates(); if (ViewModel.SelectedDeliverySchedule is DeliverySchedule s) { EditDeliveryScheduleButton.IsEnabled = true; DeleteDeliveryScheduleButton.IsEnabled = true; - await FillInputs(s); + FillInputs(s); } else { EditDeliveryScheduleButton.IsEnabled = false; DeleteDeliveryScheduleButton.IsEnabled = false; @@ -113,8 +113,8 @@ namespace Elwig.Windows { await RefreshList(); } - private async void DeliveryScheduleList_SelectionChanged(object sender, RoutedEventArgs evt) { - await RefreshInputs(); + private void DeliveryScheduleList_SelectionChanged(object sender, RoutedEventArgs evt) { + RefreshInputs(); } private async void OnlyUpcomingInput_Changed(object sender, RoutedEventArgs evt) { @@ -218,7 +218,7 @@ namespace Elwig.Windows { ViewModel.EnableSearchInputs = true; FinishInputFilling(); await RefreshList(); - await RefreshInputs(); + RefreshInputs(); ViewModel.SearchQuery = ""; } @@ -228,9 +228,9 @@ namespace Elwig.Windows { ResetButton_Click(null, null); } - private async void ResetButton_Click(object? sender, RoutedEventArgs? evt) { + private void ResetButton_Click(object? sender, RoutedEventArgs? evt) { if (IsEditing) { - await RefreshInputs(); + RefreshInputs(); } else if (IsCreating) { ClearInputs(); InitInputs(); @@ -238,21 +238,21 @@ namespace Elwig.Windows { UpdateButtons(); } - private async void CancelButton_Click(object? sender, RoutedEventArgs? evt) { + private void CancelButton_Click(object? sender, RoutedEventArgs? evt) { IsEditing = false; IsCreating = false; DeliveryScheduleList.IsEnabled = true; HideSaveResetCancelButtons(); ShowNewEditDeleteButtons(); - await RefreshInputs(); + RefreshInputs(); LockInputs(); ViewModel.EnableSearchInputs = true; } - private async Task FillInputs(DeliverySchedule s) { + private void FillInputs(DeliverySchedule s) { ClearOriginalValues(); ClearDefaultValues(); - await ViewModel.FillInputs(s); + ViewModel.FillInputs(s); FinishInputFilling(); } diff --git a/Elwig/Windows/MemberAdminWindow.xaml.cs b/Elwig/Windows/MemberAdminWindow.xaml.cs index 8a87e0e..1d054ef 100644 --- a/Elwig/Windows/MemberAdminWindow.xaml.cs +++ b/Elwig/Windows/MemberAdminWindow.xaml.cs @@ -155,12 +155,12 @@ namespace Elwig.Windows { ViewModel.StatusBusinessShares = $"{members.Sum(m => m.BusinessShares):N0} ({await ctx.Members.SumAsync(m => m.BusinessShares):N0})"; } - private async Task RefreshInputs(bool validate = false) { + private void RefreshInputs(bool validate = false) { ClearInputStates(); if (ViewModel.SelectedMember is Member m) { EditMemberButton.IsEnabled = true; DeleteMemberButton.IsEnabled = true; - await FillInputs(m); + FillInputs(m); } else { EditMemberButton.IsEnabled = false; DeleteMemberButton.IsEnabled = false; @@ -283,8 +283,8 @@ namespace Elwig.Windows { inputs.Address.Visibility = vis; } - private async void MemberList_SelectionChanged(object sender, RoutedEventArgs evt) { - await RefreshInputs(); + private void MemberList_SelectionChanged(object sender, RoutedEventArgs evt) { + RefreshInputs(); if (MemberList.SelectedItem is Member m) { Menu_Export_ExportSelected.IsEnabled = !IsEditing && !IsCreating; Menu_Export_UploadSelected.IsEnabled = !IsEditing && !IsCreating && App.Config.SyncUrl != null; @@ -409,7 +409,7 @@ namespace Elwig.Windows { ViewModel.EnableSearchInputs = true; FinishInputFilling(); await RefreshList(); - await RefreshInputs(); + RefreshInputs(); ViewModel.SearchQuery = ""; if (mgnr is int m) FocusMember(m); @@ -425,7 +425,7 @@ namespace Elwig.Windows { ViewModel.TransferPredecessorAreaComs = null; ViewModel.CancelAreaComs = null; if (IsEditing) { - await RefreshInputs(); + RefreshInputs(); } else if (IsCreating) { ClearInputs(); await InitInputs(); @@ -433,7 +433,7 @@ namespace Elwig.Windows { UpdateButtons(); } - private async void CancelButton_Click(object sender, RoutedEventArgs evt) { + private void CancelButton_Click(object sender, RoutedEventArgs evt) { IsEditing = false; IsCreating = false; MemberList.IsEnabled = true; @@ -441,7 +441,7 @@ namespace Elwig.Windows { ViewModel.CancelAreaComs = null; HideSaveResetCancelButtons(); ShowNewEditDeleteButtons(); - await RefreshInputs(); + RefreshInputs(); LockInputs(); UpdateContactInfoVisibility(); ViewModel.EnableSearchInputs = true; @@ -686,10 +686,10 @@ namespace Elwig.Windows { } } - private async Task FillInputs(Member m) { + private void FillInputs(Member m) { ClearOriginalValues(); ClearDefaultValues(); - await ViewModel.FillInputs(m); + ViewModel.FillInputs(m); UpdateContactInfoVisibility(IsEditing || IsCreating); FinishInputFilling(); }