AreaComAdminWindow: Allow users to create new reeds inline
This commit is contained in:
@ -12,6 +12,9 @@ using Xceed.Wpf.Toolkit.Primitives;
|
||||
|
||||
namespace Elwig.Windows {
|
||||
public partial class AreaComAdminWindow : AdministrationWindow {
|
||||
|
||||
public int MgNr => Member.MgNr;
|
||||
|
||||
private readonly Member Member;
|
||||
private List<string> TextFilter = new();
|
||||
|
||||
@ -165,6 +168,7 @@ namespace Elwig.Windows {
|
||||
|
||||
FbNrInput.Text = (await Context.NextFbNr()).ToString();
|
||||
MgNrInput.Text = Member.MgNr.ToString();
|
||||
YearFromInput.Text = DateTime.Now.Year.ToString();
|
||||
|
||||
SetDefaultValue(FbNrInput);
|
||||
ValidateRequiredInputs();
|
||||
@ -231,11 +235,21 @@ namespace Elwig.Windows {
|
||||
|
||||
EntityEntry<AreaCom>? tr = null;
|
||||
try {
|
||||
if (RdInput.SelectedItem is WbRd wbRd) {
|
||||
a.RdNr = wbRd.RdNr;
|
||||
var e = Context.Entry(wbRd);
|
||||
if (e.State == EntityState.Detached) {
|
||||
await Context.AddAsync(wbRd);
|
||||
}
|
||||
} else {
|
||||
a.RdNr = null;
|
||||
}
|
||||
|
||||
if (IsEditing) {
|
||||
tr = Context.Update(a);
|
||||
} else if (IsCreating) {
|
||||
a.FbNr = newFbNr;
|
||||
tr = (await Context.AddAsync(a));
|
||||
tr = await Context.AddAsync(a);
|
||||
} else {
|
||||
throw new Exception();
|
||||
}
|
||||
@ -387,6 +401,19 @@ namespace Elwig.Windows {
|
||||
ComboBox_SelectionChanged(sender, evt);
|
||||
}
|
||||
|
||||
private void RdInput_SelectionChanged(object sender, SelectionChangedEventArgs evt) {
|
||||
RdAddButton.IsEnabled = RdInput.SelectedIndex == -1;
|
||||
}
|
||||
|
||||
private async void RdAddButton_Click(object sender, RoutedEventArgs evt) {
|
||||
if (KgInput.SelectedItem is not AT_Kg kg) return;
|
||||
string name = RdInput.Text.Trim();
|
||||
if (name.Length == 0) return;
|
||||
var s = RdInput.ItemsSource.Cast<object?>();
|
||||
RdInput.ItemsSource = s.Append(new WbRd() { KgNr = kg.KgNr, Name = name, RdNr = await Context.NextRdNr(kg.KgNr)});
|
||||
RdInput.SelectedIndex = s.Count();
|
||||
}
|
||||
|
||||
protected void InputTextChanged(TextBox input, Func<TextBox, bool, AppDbContext, AreaCom?, ValidationResult> checker) {
|
||||
InputTextChanged(input, checker(input, SenderIsRequired(input), Context, (AreaCom)AreaCommitmentList.SelectedItem));
|
||||
}
|
||||
|
Reference in New Issue
Block a user