Services: Make FillInputs synchronous
This commit is contained in:
@ -32,7 +32,7 @@ namespace Elwig.Services {
|
|||||||
vm.StatusAncmtModified = "-";
|
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.MgNr = a.MgNr;
|
||||||
vm.DeliverySchedule = (DeliverySchedule?)ControlUtils.GetItemFromSourceWithPk(vm.DeliveryScheduleSource, a.Year, a.DsNr);
|
vm.DeliverySchedule = (DeliverySchedule?)ControlUtils.GetItemFromSourceWithPk(vm.DeliveryScheduleSource, a.Year, a.DsNr);
|
||||||
vm.SortId = a.SortId;
|
vm.SortId = a.SortId;
|
||||||
|
@ -21,7 +21,7 @@ namespace Elwig.Services {
|
|||||||
public static void ClearInputs(this DeliveryScheduleAdminViewModel vm) {
|
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.Date = s.Date;
|
||||||
vm.Branch = (Branch?)ControlUtils.GetItemFromSourceWithPk(vm.BranchSource, s.ZwstId);
|
vm.Branch = (Branch?)ControlUtils.GetItemFromSourceWithPk(vm.BranchSource, s.ZwstId);
|
||||||
vm.Description = s.Description;
|
vm.Description = s.Description;
|
||||||
|
@ -51,7 +51,7 @@ namespace Elwig.Services {
|
|||||||
vm.Age = "-";
|
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.IsMemberSelected = true;
|
||||||
vm.MgNrString = $"{m.MgNr}";
|
vm.MgNrString = $"{m.MgNr}";
|
||||||
vm.PredecessorMgNrString = $"{m.PredecessorMgNr}";
|
vm.PredecessorMgNrString = $"{m.PredecessorMgNr}";
|
||||||
@ -137,8 +137,19 @@ namespace Elwig.Services {
|
|||||||
vm.ContactViaPost = m.ContactViaPost;
|
vm.ContactViaPost = m.ContactViaPost;
|
||||||
vm.ContactViaEmail = m.ContactViaEmail;
|
vm.ContactViaEmail = m.ContactViaEmail;
|
||||||
|
|
||||||
Dictionary<int, int> deliveries;
|
vm.StatusDeliveriesLastSeasonInfo = "letzte Saison";
|
||||||
using (var ctx = new AppDbContext()) {
|
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 d1 = ctx.Deliveries.Where(d => d.Year == Utils.CurrentLastSeason - 1 && d.MgNr == m.MgNr);
|
||||||
var (_, d1Grid, _, _) = await DeliveryService.GenerateToolTip(d1.SelectMany(d => d.Parts));
|
var (_, d1Grid, _, _) = await DeliveryService.GenerateToolTip(d1.SelectMany(d => d.Parts));
|
||||||
vm.StatusDeliveriesLastSeasonInfo = $"{Utils.CurrentLastSeason - 1}";
|
vm.StatusDeliveriesLastSeasonInfo = $"{Utils.CurrentLastSeason - 1}";
|
||||||
@ -161,17 +172,19 @@ namespace Elwig.Services {
|
|||||||
vm.StatusAreaCommitmentInfo = $"{Utils.CurrentLastSeason}";
|
vm.StatusAreaCommitmentInfo = $"{Utils.CurrentLastSeason}";
|
||||||
vm.StatusAreaCommitment = text;
|
vm.StatusAreaCommitment = text;
|
||||||
vm.StatusAreaCommitmentToolTip = grid;
|
vm.StatusAreaCommitmentToolTip = grid;
|
||||||
|
});
|
||||||
|
|
||||||
|
Dictionary<int, bool> deliveries;
|
||||||
|
using (var ctx = new AppDbContext()) {
|
||||||
deliveries = ctx.Deliveries
|
deliveries = ctx.Deliveries
|
||||||
.Where(d => d.MgNr == m.MgNr)
|
.Where(d => d.MgNr == m.MgNr)
|
||||||
.SelectMany(d => d.Parts)
|
|
||||||
.GroupBy(d => d.Year)
|
.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.MemberHasEmail = m.EmailAddresses.Count > 0;
|
||||||
vm.MemberCanSendEmail = App.Config.Smtp != null && 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) {
|
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();
|
ClearInputStates();
|
||||||
if (ViewModel.SelectedDeliveryAncmt is DeliveryAncmt a) {
|
if (ViewModel.SelectedDeliveryAncmt is DeliveryAncmt a) {
|
||||||
EditDeliveryAncmtButton.IsEnabled = true;
|
EditDeliveryAncmtButton.IsEnabled = true;
|
||||||
DeleteDeliveryAncmtButton.IsEnabled = true;
|
DeleteDeliveryAncmtButton.IsEnabled = true;
|
||||||
await FillInputs(a);
|
FillInputs(a);
|
||||||
} else {
|
} else {
|
||||||
EditDeliveryAncmtButton.IsEnabled = false;
|
EditDeliveryAncmtButton.IsEnabled = false;
|
||||||
DeleteDeliveryAncmtButton.IsEnabled = false;
|
DeleteDeliveryAncmtButton.IsEnabled = false;
|
||||||
@ -185,8 +185,8 @@ namespace Elwig.Windows {
|
|||||||
await RefreshList();
|
await RefreshList();
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void DeliveryAncmtList_SelectionChanged(object sender, RoutedEventArgs evt) {
|
private void DeliveryAncmtList_SelectionChanged(object sender, RoutedEventArgs evt) {
|
||||||
await RefreshInputs();
|
RefreshInputs();
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void DeliveryScheduleList_SelectionChanged(object sender, RoutedEventArgs evt) {
|
private async void DeliveryScheduleList_SelectionChanged(object sender, RoutedEventArgs evt) {
|
||||||
@ -361,7 +361,7 @@ namespace Elwig.Windows {
|
|||||||
ViewModel.EnableSearchInputs = true;
|
ViewModel.EnableSearchInputs = true;
|
||||||
FinishInputFilling();
|
FinishInputFilling();
|
||||||
await RefreshList();
|
await RefreshList();
|
||||||
await RefreshInputs();
|
RefreshInputs();
|
||||||
ViewModel.SearchQuery = "";
|
ViewModel.SearchQuery = "";
|
||||||
ControlUtils.SelectItemWithPk(DeliveryScheduleList, year, dsnr);
|
ControlUtils.SelectItemWithPk(DeliveryScheduleList, year, dsnr);
|
||||||
if (sortid != null)
|
if (sortid != null)
|
||||||
@ -374,9 +374,9 @@ namespace Elwig.Windows {
|
|||||||
ResetButton_Click(null, null);
|
ResetButton_Click(null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void ResetButton_Click(object? sender, RoutedEventArgs? evt) {
|
private void ResetButton_Click(object? sender, RoutedEventArgs? evt) {
|
||||||
if (IsEditing) {
|
if (IsEditing) {
|
||||||
await RefreshInputs();
|
RefreshInputs();
|
||||||
} else if (IsCreating) {
|
} else if (IsCreating) {
|
||||||
ClearInputs();
|
ClearInputs();
|
||||||
InitInputs();
|
InitInputs();
|
||||||
@ -401,15 +401,15 @@ namespace Elwig.Windows {
|
|||||||
|
|
||||||
HideSaveResetCancelButtons();
|
HideSaveResetCancelButtons();
|
||||||
ShowNewEditDeleteButtons();
|
ShowNewEditDeleteButtons();
|
||||||
await RefreshInputs();
|
RefreshInputs();
|
||||||
LockInputs();
|
LockInputs();
|
||||||
ViewModel.EnableSearchInputs = true;
|
ViewModel.EnableSearchInputs = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task FillInputs(DeliveryAncmt a) {
|
private void FillInputs(DeliveryAncmt a) {
|
||||||
ClearOriginalValues();
|
ClearOriginalValues();
|
||||||
ClearDefaultValues();
|
ClearDefaultValues();
|
||||||
await ViewModel.FillInputs(a);
|
ViewModel.FillInputs(a);
|
||||||
FinishInputFilling();
|
FinishInputFilling();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -72,12 +72,12 @@ namespace Elwig.Windows {
|
|||||||
DeliveryScheduleList.ScrollIntoView(DeliveryScheduleList.SelectedItem);
|
DeliveryScheduleList.ScrollIntoView(DeliveryScheduleList.SelectedItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task RefreshInputs(bool validate = false) {
|
private void RefreshInputs(bool validate = false) {
|
||||||
ClearInputStates();
|
ClearInputStates();
|
||||||
if (ViewModel.SelectedDeliverySchedule is DeliverySchedule s) {
|
if (ViewModel.SelectedDeliverySchedule is DeliverySchedule s) {
|
||||||
EditDeliveryScheduleButton.IsEnabled = true;
|
EditDeliveryScheduleButton.IsEnabled = true;
|
||||||
DeleteDeliveryScheduleButton.IsEnabled = true;
|
DeleteDeliveryScheduleButton.IsEnabled = true;
|
||||||
await FillInputs(s);
|
FillInputs(s);
|
||||||
} else {
|
} else {
|
||||||
EditDeliveryScheduleButton.IsEnabled = false;
|
EditDeliveryScheduleButton.IsEnabled = false;
|
||||||
DeleteDeliveryScheduleButton.IsEnabled = false;
|
DeleteDeliveryScheduleButton.IsEnabled = false;
|
||||||
@ -113,8 +113,8 @@ namespace Elwig.Windows {
|
|||||||
await RefreshList();
|
await RefreshList();
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void DeliveryScheduleList_SelectionChanged(object sender, RoutedEventArgs evt) {
|
private void DeliveryScheduleList_SelectionChanged(object sender, RoutedEventArgs evt) {
|
||||||
await RefreshInputs();
|
RefreshInputs();
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void OnlyUpcomingInput_Changed(object sender, RoutedEventArgs evt) {
|
private async void OnlyUpcomingInput_Changed(object sender, RoutedEventArgs evt) {
|
||||||
@ -218,7 +218,7 @@ namespace Elwig.Windows {
|
|||||||
ViewModel.EnableSearchInputs = true;
|
ViewModel.EnableSearchInputs = true;
|
||||||
FinishInputFilling();
|
FinishInputFilling();
|
||||||
await RefreshList();
|
await RefreshList();
|
||||||
await RefreshInputs();
|
RefreshInputs();
|
||||||
ViewModel.SearchQuery = "";
|
ViewModel.SearchQuery = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -228,9 +228,9 @@ namespace Elwig.Windows {
|
|||||||
ResetButton_Click(null, null);
|
ResetButton_Click(null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void ResetButton_Click(object? sender, RoutedEventArgs? evt) {
|
private void ResetButton_Click(object? sender, RoutedEventArgs? evt) {
|
||||||
if (IsEditing) {
|
if (IsEditing) {
|
||||||
await RefreshInputs();
|
RefreshInputs();
|
||||||
} else if (IsCreating) {
|
} else if (IsCreating) {
|
||||||
ClearInputs();
|
ClearInputs();
|
||||||
InitInputs();
|
InitInputs();
|
||||||
@ -238,21 +238,21 @@ namespace Elwig.Windows {
|
|||||||
UpdateButtons();
|
UpdateButtons();
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void CancelButton_Click(object? sender, RoutedEventArgs? evt) {
|
private void CancelButton_Click(object? sender, RoutedEventArgs? evt) {
|
||||||
IsEditing = false;
|
IsEditing = false;
|
||||||
IsCreating = false;
|
IsCreating = false;
|
||||||
DeliveryScheduleList.IsEnabled = true;
|
DeliveryScheduleList.IsEnabled = true;
|
||||||
HideSaveResetCancelButtons();
|
HideSaveResetCancelButtons();
|
||||||
ShowNewEditDeleteButtons();
|
ShowNewEditDeleteButtons();
|
||||||
await RefreshInputs();
|
RefreshInputs();
|
||||||
LockInputs();
|
LockInputs();
|
||||||
ViewModel.EnableSearchInputs = true;
|
ViewModel.EnableSearchInputs = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task FillInputs(DeliverySchedule s) {
|
private void FillInputs(DeliverySchedule s) {
|
||||||
ClearOriginalValues();
|
ClearOriginalValues();
|
||||||
ClearDefaultValues();
|
ClearDefaultValues();
|
||||||
await ViewModel.FillInputs(s);
|
ViewModel.FillInputs(s);
|
||||||
FinishInputFilling();
|
FinishInputFilling();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -155,12 +155,12 @@ namespace Elwig.Windows {
|
|||||||
ViewModel.StatusBusinessShares = $"{members.Sum(m => m.BusinessShares):N0} ({await ctx.Members.SumAsync(m => m.BusinessShares):N0})";
|
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();
|
ClearInputStates();
|
||||||
if (ViewModel.SelectedMember is Member m) {
|
if (ViewModel.SelectedMember is Member m) {
|
||||||
EditMemberButton.IsEnabled = true;
|
EditMemberButton.IsEnabled = true;
|
||||||
DeleteMemberButton.IsEnabled = true;
|
DeleteMemberButton.IsEnabled = true;
|
||||||
await FillInputs(m);
|
FillInputs(m);
|
||||||
} else {
|
} else {
|
||||||
EditMemberButton.IsEnabled = false;
|
EditMemberButton.IsEnabled = false;
|
||||||
DeleteMemberButton.IsEnabled = false;
|
DeleteMemberButton.IsEnabled = false;
|
||||||
@ -283,8 +283,8 @@ namespace Elwig.Windows {
|
|||||||
inputs.Address.Visibility = vis;
|
inputs.Address.Visibility = vis;
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void MemberList_SelectionChanged(object sender, RoutedEventArgs evt) {
|
private void MemberList_SelectionChanged(object sender, RoutedEventArgs evt) {
|
||||||
await RefreshInputs();
|
RefreshInputs();
|
||||||
if (MemberList.SelectedItem is Member m) {
|
if (MemberList.SelectedItem is Member m) {
|
||||||
Menu_Export_ExportSelected.IsEnabled = !IsEditing && !IsCreating;
|
Menu_Export_ExportSelected.IsEnabled = !IsEditing && !IsCreating;
|
||||||
Menu_Export_UploadSelected.IsEnabled = !IsEditing && !IsCreating && App.Config.SyncUrl != null;
|
Menu_Export_UploadSelected.IsEnabled = !IsEditing && !IsCreating && App.Config.SyncUrl != null;
|
||||||
@ -409,7 +409,7 @@ namespace Elwig.Windows {
|
|||||||
ViewModel.EnableSearchInputs = true;
|
ViewModel.EnableSearchInputs = true;
|
||||||
FinishInputFilling();
|
FinishInputFilling();
|
||||||
await RefreshList();
|
await RefreshList();
|
||||||
await RefreshInputs();
|
RefreshInputs();
|
||||||
ViewModel.SearchQuery = "";
|
ViewModel.SearchQuery = "";
|
||||||
if (mgnr is int m)
|
if (mgnr is int m)
|
||||||
FocusMember(m);
|
FocusMember(m);
|
||||||
@ -425,7 +425,7 @@ namespace Elwig.Windows {
|
|||||||
ViewModel.TransferPredecessorAreaComs = null;
|
ViewModel.TransferPredecessorAreaComs = null;
|
||||||
ViewModel.CancelAreaComs = null;
|
ViewModel.CancelAreaComs = null;
|
||||||
if (IsEditing) {
|
if (IsEditing) {
|
||||||
await RefreshInputs();
|
RefreshInputs();
|
||||||
} else if (IsCreating) {
|
} else if (IsCreating) {
|
||||||
ClearInputs();
|
ClearInputs();
|
||||||
await InitInputs();
|
await InitInputs();
|
||||||
@ -433,7 +433,7 @@ namespace Elwig.Windows {
|
|||||||
UpdateButtons();
|
UpdateButtons();
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void CancelButton_Click(object sender, RoutedEventArgs evt) {
|
private void CancelButton_Click(object sender, RoutedEventArgs evt) {
|
||||||
IsEditing = false;
|
IsEditing = false;
|
||||||
IsCreating = false;
|
IsCreating = false;
|
||||||
MemberList.IsEnabled = true;
|
MemberList.IsEnabled = true;
|
||||||
@ -441,7 +441,7 @@ namespace Elwig.Windows {
|
|||||||
ViewModel.CancelAreaComs = null;
|
ViewModel.CancelAreaComs = null;
|
||||||
HideSaveResetCancelButtons();
|
HideSaveResetCancelButtons();
|
||||||
ShowNewEditDeleteButtons();
|
ShowNewEditDeleteButtons();
|
||||||
await RefreshInputs();
|
RefreshInputs();
|
||||||
LockInputs();
|
LockInputs();
|
||||||
UpdateContactInfoVisibility();
|
UpdateContactInfoVisibility();
|
||||||
ViewModel.EnableSearchInputs = true;
|
ViewModel.EnableSearchInputs = true;
|
||||||
@ -686,10 +686,10 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task FillInputs(Member m) {
|
private void FillInputs(Member m) {
|
||||||
ClearOriginalValues();
|
ClearOriginalValues();
|
||||||
ClearDefaultValues();
|
ClearDefaultValues();
|
||||||
await ViewModel.FillInputs(m);
|
ViewModel.FillInputs(m);
|
||||||
UpdateContactInfoVisibility(IsEditing || IsCreating);
|
UpdateContactInfoVisibility(IsEditing || IsCreating);
|
||||||
FinishInputFilling();
|
FinishInputFilling();
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user