Services: Make FillInputs synchronous
This commit is contained in:
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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<int, int> 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<int, bool> 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<string>, IQueryable<Member>, List<string>)> GetFilters(this MemberAdminViewModel vm, AppDbContext ctx) {
|
||||
|
@ -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();
|
||||
}
|
||||
|
||||
|
@ -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();
|
||||
}
|
||||
|
||||
|
@ -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();
|
||||
}
|
||||
|
Reference in New Issue
Block a user