Changed refresh methods in AreaCommitmentWindow to async

This commit is contained in:
2023-03-31 23:23:20 +02:00
parent ceadc8b2f8
commit 1cda6c19c1

View File

@ -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) {