Models: Add MemberEmailAddr

This commit is contained in:
2023-09-14 22:32:28 +02:00
parent ba691f4d17
commit f5eea1e906
4 changed files with 84 additions and 36 deletions

View File

@ -266,7 +266,7 @@ namespace Elwig.Windows {
}
private void Menu_Member_SendEmail_Click(object sender, RoutedEventArgs evt) {
Utils.MailTo(((Member)MemberList.SelectedItem).Email);
Utils.MailTo(((Member)MemberList.SelectedItem).EmailAddresses.First().Address);
}
private void FocusSearchInput(object sender, RoutedEventArgs evt) {
@ -349,8 +349,6 @@ namespace Elwig.Windows {
m.PostalDestId = ((AT_PlzDest)OrtInput.SelectedItem).Id;
m.Address = AddressInput.Text;
m.Email = (EmailAddressInput.Text == "") ? null : EmailAddressInput.Text;
m.Iban = (IbanInput.Text == "") ? null : IbanInput.Text.Replace(" ", "");
m.Bic = (BicInput.Text == "") ? null : BicInput.Text;
@ -424,6 +422,27 @@ namespace Elwig.Windows {
}
}
for (int i = 0; i < 2; i++) {
var input = i == 0 ? EmailAddress1Input : EmailAddress2Input;
var emailAddr = m.EmailAddresses.FirstOrDefault(a => a.Nr - 1 == i);
if (input.Text == "") {
if (emailAddr != null) {
Context.Remove(emailAddr);
}
} else {
MemberEmailAddr a = emailAddr ?? Context.CreateProxy<MemberEmailAddr>();
a.Nr = i + 1;
a.Address = input.Text;
a.Comment = null;
if (emailAddr == null) {
a.MgNr = newMgNr;
await Context.AddAsync(a);
} else {
Context.Update(a);
}
}
}
await Context.SaveChangesAsync();
if (newMgNr != m.MgNr) {
@ -475,7 +494,10 @@ namespace Elwig.Windows {
OrtInput.SelectedItem = null;
}
EmailAddressInput.Text = m.Email;
var emailAddrs = m.EmailAddresses.OrderBy(a => a.Nr).ToList();
EmailAddress1Input.Text = emailAddrs.Count > 0 ? emailAddrs[0].Address : "";
EmailAddress2Input.Text = emailAddrs.Count > 1 ? emailAddrs[1].Address : "";
var phoneNrs = m.TelephoneNumbers.OrderBy(p => p.Nr).ToList();
for (int i = 0; i < PhoneNrInputs.Length; i++) {
if (i < phoneNrs.Count) {
@ -525,7 +547,7 @@ namespace Elwig.Windows {
AreaCommitment.Text = $"{m.ActiveAreaCommitments.Select(c => c.Area).Sum():N0} m²";
Menu_Member_SendEmail.IsEnabled = m.Email != null;
Menu_Member_SendEmail.IsEnabled = m.EmailAddresses.Count > 0;
FinishInputFilling();
}