MemberAdminWindow: Cleanup deletion of telnr and email addresses

This commit is contained in:
2024-02-28 15:08:28 +01:00
parent e9f6f22bc8
commit 3a0f2e9556

View File

@ -61,7 +61,7 @@ namespace Elwig.Windows {
(PhoneNr8TypeInput, PhoneNr8Input, PhoneNr8CommentInput), (PhoneNr8TypeInput, PhoneNr8Input, PhoneNr8CommentInput),
(PhoneNr9TypeInput, PhoneNr9Input, PhoneNr9CommentInput), (PhoneNr9TypeInput, PhoneNr9Input, PhoneNr9CommentInput),
]; ];
foreach (var input in PhoneNrInputs) input.Item1.ItemsSource = PhoneNrTypes; foreach (var input in PhoneNrInputs) input.Type.ItemsSource = PhoneNrTypes;
InitializeDelayTimer(SearchInput, SearchInput_TextChanged); InitializeDelayTimer(SearchInput, SearchInput_TextChanged);
SearchInput.TextChanged -= SearchInput_TextChanged; SearchInput.TextChanged -= SearchInput_TextChanged;
@ -281,7 +281,7 @@ namespace Elwig.Windows {
inputs.Address.Text = address; inputs.Address.Text = address;
} }
private (string, string, string?)? GetPhoneNrInput(int nr) { private (string Type, string Number, string? Comment)? GetPhoneNrInput(int nr) {
var inputs = PhoneNrInputs[nr]; var inputs = PhoneNrInputs[nr];
var number = inputs.Number.Text; var number = inputs.Number.Text;
if (string.IsNullOrEmpty(number)) if (string.IsNullOrEmpty(number))
@ -656,30 +656,24 @@ namespace Elwig.Windows {
} }
} }
Context.RemoveRange(m.TelephoneNumbers);
for (int i = 0, j = 0; i < PhoneNrInputs.Length; i++) { for (int i = 0, j = 0; i < PhoneNrInputs.Length; i++) {
var input = GetPhoneNrInput(i); var input = GetPhoneNrInput(i);
var phoneNr = m.TelephoneNumbers.FirstOrDefault(p => p.Nr - 1 == i);
if (phoneNr != null) {
Context.Remove(phoneNr);
}
if (input != null) { if (input != null) {
var pInput = input.Value; var pInput = input.Value;
MemberTelNr p = Context.CreateProxy<MemberTelNr>(); MemberTelNr p = Context.CreateProxy<MemberTelNr>();
p.MgNr = newMgNr; p.MgNr = newMgNr;
p.Nr = ++j; p.Nr = ++j;
p.Type = pInput.Item1; p.Type = pInput.Type;
p.Number = pInput.Item2; p.Number = pInput.Number;
p.Comment = pInput.Item3; p.Comment = pInput.Comment;
await Context.AddAsync(p); await Context.AddAsync(p);
} }
} }
Context.RemoveRange(m.EmailAddresses);
for (int i = 0, j = 0; i < EmailAddressInputs.Length; i++) { for (int i = 0, j = 0; i < EmailAddressInputs.Length; i++) {
var input = GetEmailAddressInput(i); var input = GetEmailAddressInput(i);
var emailAddr = m.EmailAddresses.FirstOrDefault(a => a.Nr - 1 == i);
if (emailAddr != null) {
Context.Remove(emailAddr);
}
if (input != null && input != "") { if (input != null && input != "") {
MemberEmailAddr a = Context.CreateProxy<MemberEmailAddr>(); MemberEmailAddr a = Context.CreateProxy<MemberEmailAddr>();
a.MgNr = newMgNr; a.MgNr = newMgNr;