BaseDataWindow: Fix Modifier creation

This commit is contained in:
2023-09-18 01:30:45 +02:00
parent ef621fab2d
commit 404e8a0c27
2 changed files with 11 additions and 3 deletions

View File

@ -117,6 +117,7 @@ namespace Elwig.Windows {
await Context.SaveChangesAsync();
foreach (var mod in ModifierList.Where(m => !ModifierIds.ContainsKey(m))) {
if (mod.ModId == null) continue;
await Context.AddAsync(mod);
}
await Context.SaveChangesAsync();
@ -321,6 +322,7 @@ namespace Elwig.Windows {
}
private void SeasonModifierRelInput_TextChanged(object sender, TextChangedEventArgs evt) {
DecimalInput_TextChanged(sender, evt);
if ((!IsEditing && !IsCreating) || SeasonModifierList.SelectedItem is not Modifier mod) return;
ModifiersChanged = ModifiersChanged || (SeasonModifierRelInput.Text ?? "") != ((SeasonModifierList.SelectedItem as Modifier)?.Rel?.ToString() ?? "");
if (ModifierUpdate) return;
@ -331,11 +333,13 @@ namespace Elwig.Windows {
}
private void SeasonModifierAbsInput_TextChanged(object sender, TextChangedEventArgs evt) {
if ((!IsEditing && !IsCreating) || SeasonModifierList.SelectedItem is not Modifier mod) return;
DecimalInput_TextChanged(sender, evt);
if ((!IsEditing && !IsCreating) || SeasonModifierList.SelectedItem is not Modifier mod || SeasonList.SelectedItem is not Season s) return;
ModifiersChanged = ModifiersChanged || (SeasonModifierAbsInput.Text ?? "") != ((SeasonModifierList.SelectedItem as Modifier)?.Abs?.ToString() ?? "");
if (ModifierUpdate) return;
mod.Abs = decimal.TryParse(SeasonModifierAbsInput.Text, out var v) ? v : null;
if (mod.Abs != null) SeasonModifierRelInput.Text = "";
// FIXME ValueStr does not work in ModifierList when modifier is newly created
mod.AbsValue = decimal.TryParse(SeasonModifierAbsInput.Text, out var v) ? Utils.DecToDb(v, s.Precision) : null;
if (mod.AbsValue != null) SeasonModifierRelInput.Text = "";
CollectionViewSource.GetDefaultView(ModifierList).Refresh();
UpdateButtons();
}