Changed refresh methods in AreaCommitmentWindow to async
This commit is contained in:
		| @@ -19,7 +19,6 @@ namespace Elwig.Windows { | ||||
|             InitializeComponent(); | ||||
|             this.member = member; | ||||
|             Title = $"Flächenbindungen - {member.FamilyName} {member.GivenName} - Elwig"; | ||||
|             RefreshContractList(); | ||||
|             ExemptInputs = new Control[] { | ||||
|                 ContractList, AreaCommitmentList, NewContractButton, DeleteContractButton, | ||||
|                 ContractSaveButton, ContractCancelButton, NewAreaCommitmentButton,  | ||||
| @@ -32,7 +31,8 @@ namespace Elwig.Windows { | ||||
|             }; | ||||
|         } | ||||
|  | ||||
|         private void Window_Loaded(object sender, RoutedEventArgs e) { | ||||
|         private async void Window_Loaded(object sender, RoutedEventArgs e) { | ||||
|             await RefreshContractList(); | ||||
|             //TODO Sources von Ried sollten sich auf Gemeinde beziehen | ||||
|             KgInput.ItemsSource = Context.WbKgs.Select(k => k.Kg).OrderBy(k => k.Name).ToList(); | ||||
|             RdInput.ItemsSource = Context.WbRde.OrderBy(r => r.Name).ToList(); | ||||
| @@ -41,7 +41,28 @@ namespace Elwig.Windows { | ||||
|             CultInput.ItemsSource = Context.WineCultivations.OrderBy(c => c.Name).ToList(); | ||||
|         } | ||||
|  | ||||
|         private void RefreshAreaCommitmentList() { | ||||
|         private async Task RefreshContractList() { | ||||
|             await Context.Contracts.LoadAsync(); | ||||
|             await RefreshContractListQuery(); | ||||
|         } | ||||
|  | ||||
|         private async Task RefreshAreaCommitmentList() { | ||||
|             await Context.AreaCommitments.LoadAsync(); | ||||
|             await RefreshAreaCommitmentListQuery(); | ||||
|         } | ||||
|  | ||||
|         private async Task RefreshContractListQuery() { | ||||
|             List<Contract> contracts = await Context.Contracts.Where(c => c.MgNr == member.MgNr).ToListAsync(); | ||||
|  | ||||
|             ContractList.ItemsSource = contracts; | ||||
|             if (contracts.Count == 1) | ||||
|                 ContractList.SelectedIndex = 0; | ||||
|  | ||||
|             await RefreshAreaCommitmentList(); | ||||
|             RefreshInputs(); | ||||
|         } | ||||
|  | ||||
|         private async Task RefreshAreaCommitmentListQuery() { | ||||
|             Contract? contract = (Contract)ContractList.SelectedItem; | ||||
|              | ||||
|             if (contract == null) { | ||||
| @@ -49,25 +70,13 @@ namespace Elwig.Windows { | ||||
|                 return; | ||||
|             } | ||||
|  | ||||
|             Context.AreaCommitments.Load(); | ||||
|             List<AreaCommitment> commitments = Context.AreaCommitments.Where(a => a.VNr == contract.VNr).ToList(); | ||||
|             List<AreaCommitment> commitments = await Context.AreaCommitments.Where(a => a.VNr == contract.VNr).ToListAsync(); | ||||
|  | ||||
|             AreaCommitmentList.ItemsSource = commitments; | ||||
|             if (commitments.Count == 1) | ||||
|                 AreaCommitmentList.SelectedIndex = 0; | ||||
|         } | ||||
|  | ||||
|         private void RefreshContractList() { | ||||
|             Context.Contracts.Load(); | ||||
|             List<Contract> contracts = Context.Contracts.Where(c => c.MgNr == member.MgNr).ToList(); | ||||
|  | ||||
|             ContractList.ItemsSource = contracts; | ||||
|             if (contracts.Count == 1) | ||||
|                 ContractList.SelectedIndex = 0; | ||||
|  | ||||
|             RefreshAreaCommitmentList(); | ||||
|         } | ||||
|  | ||||
|         private void RefreshInputs(bool validate = false) { | ||||
|             ClearInputStates(); | ||||
|             Contract? c = (Contract)ContractList.SelectedItem; | ||||
| @@ -143,17 +152,17 @@ namespace Elwig.Windows { | ||||
|             MgNrInput.IsReadOnly = true; | ||||
|         } | ||||
|  | ||||
|         private void DeleteAreaCommitmentButton_Click(object sender, RoutedEventArgs evt) { | ||||
|         private async void DeleteAreaCommitmentButton_Click(object sender, RoutedEventArgs evt) { | ||||
|             AreaCommitment a = (AreaCommitment)AreaCommitmentList.SelectedItem; | ||||
|             if (a == null) return; | ||||
|  | ||||
|             var r = MessageBox.Show( | ||||
|                 $"Soll die Flächenbindung \"{a.Kg.Kg.Name}, {a.Rd.Name}\", (MgNr. {a.GstNr}) wirklich unwiderruflich gelöscht werden?", | ||||
|                 $"Soll die Flächenbindung {a.Kg.Kg.Name}{(a.Rd.Name == null ? "" : $", {a.Rd.Name}")}, {a.GstNr} wirklich unwiderruflich gelöscht werden?", | ||||
|                 "Flächenbindung löschen", MessageBoxButton.YesNo, MessageBoxImage.Warning, MessageBoxResult.No); | ||||
|             if (r == MessageBoxResult.Yes) { | ||||
|                 Context.Remove(a); | ||||
|                 Context.SaveChanges(); | ||||
|                 RefreshAreaCommitmentList(); | ||||
|                 await RefreshAreaCommitmentList(); | ||||
|             } | ||||
|         } | ||||
|  | ||||
| @@ -180,7 +189,7 @@ namespace Elwig.Windows { | ||||
|             InitInputs(); | ||||
|         } | ||||
|  | ||||
|         private void DeleteContractButton_Click(object sender, RoutedEventArgs evt) { | ||||
|         private async void DeleteContractButton_Click(object sender, RoutedEventArgs evt) { | ||||
|             Contract c = (Contract)ContractList.SelectedItem; | ||||
|             if (c == null) return; | ||||
|  | ||||
| @@ -190,11 +199,11 @@ namespace Elwig.Windows { | ||||
|             if (r == MessageBoxResult.Yes) { | ||||
|                 Context.Remove(c); | ||||
|                 Context.SaveChanges(); | ||||
|                 RefreshContractList(); | ||||
|                 await RefreshContractList(); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         private void AreaCommitmentSaveButton_Click(object sender, RoutedEventArgs evt) { | ||||
|         private async void AreaCommitmentSaveButton_Click(object sender, RoutedEventArgs evt) { | ||||
|             AreaCommitment? a = new(); | ||||
|             if (IsEditing) | ||||
|                 a = (AreaCommitment)AreaCommitmentList.SelectedItem; | ||||
| @@ -227,7 +236,7 @@ namespace Elwig.Windows { | ||||
|             ShowAreaCommitmentNewEditDeleteButtons(); | ||||
|             EnableContractNewDeleteButtons(); | ||||
|             LockInputs(); | ||||
|             RefreshContractList(); | ||||
|             await RefreshContractList(); | ||||
|         } | ||||
|  | ||||
|         private void AreaCommitmentResetButton_Click(object sender, RoutedEventArgs evt) { | ||||
| @@ -252,7 +261,7 @@ namespace Elwig.Windows { | ||||
|             LockInputs(); | ||||
|         } | ||||
|  | ||||
|         private void ContractSaveButton_Click(object sender, RoutedEventArgs evt) { | ||||
|         private async void ContractSaveButton_Click(object sender, RoutedEventArgs evt) { | ||||
|             IsEditing = false; | ||||
|             IsCreating = false; | ||||
|             AreaCommitmentList.IsEnabled = true; | ||||
| @@ -261,7 +270,7 @@ namespace Elwig.Windows { | ||||
|             ShowContractNewDeleteButtons(); | ||||
|             EnableAreaCommitmentNewEditDeleteButtons(); | ||||
|             LockInputs(); | ||||
|             RefreshContractList(); | ||||
|             await RefreshContractList(); | ||||
|         } | ||||
|  | ||||
|         private void ContractCancelButton_Click(object sender, RoutedEventArgs evt) { | ||||
| @@ -368,8 +377,8 @@ namespace Elwig.Windows { | ||||
|             DeleteAreaCommitmentButton.Visibility = Visibility.Hidden; | ||||
|         } | ||||
|  | ||||
|         private void ContractList_SelectionChanged(object sender, SelectionChangedEventArgs evt) { | ||||
|             RefreshAreaCommitmentList(); | ||||
|         private async void ContractList_SelectionChanged(object sender, SelectionChangedEventArgs evt) { | ||||
|             await RefreshAreaCommitmentList(); | ||||
|         } | ||||
|  | ||||
|         private void AreaCommitmentList_SelectionChanged(object sender, SelectionChangedEventArgs evt) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user