customer
This commit is contained in:
@@ -70,17 +70,20 @@ namespace Webshop.Application.Services.Customers
|
||||
var identityUser = await _userManager.FindByIdAsync(userId);
|
||||
if (identityUser == null) return (false, "Benutzerkonto nicht gefunden.");
|
||||
|
||||
// 1. Aktuelles Passwort prüfen (für alle sensiblen Änderungen)
|
||||
// 1. Aktuelles Passwort prüfen
|
||||
if (!await _userManager.CheckPasswordAsync(identityUser, profileDto.CurrentPassword))
|
||||
{
|
||||
return (false, "Falsches aktuelles Passwort zur Bestätigung.");
|
||||
}
|
||||
|
||||
// 2. Felder der Customer-Entität aktualisieren (FirstName, LastName)
|
||||
// 2. Felder der Customer-Entität aktualisieren (FirstName, LastName, DEFAULT ADDRESS IDs)
|
||||
customer.FirstName = profileDto.FirstName;
|
||||
customer.LastName = profileDto.LastName;
|
||||
// customer.PhoneNumber = profileDto.PhoneNumber; // Entfernt, da es jetzt in ApplicationUser zentralisiert ist
|
||||
await _customerRepository.UpdateAsync(customer); // Speichert Änderungen im Customer-Profil
|
||||
// << NEU: DEFAULT ADDRESS IDs aktualisieren >>
|
||||
customer.DefaultShippingAddressId = profileDto.DefaultShippingAddressId;
|
||||
customer.DefaultBillingAddressId = profileDto.DefaultBillingAddressId;
|
||||
// -- ENDE NEU --
|
||||
await _customerRepository.UpdateAsync(customer);
|
||||
|
||||
// 3. Felder des ApplicationUser (IdentityUser) aktualisieren (Email, PhoneNumber)
|
||||
bool identityUserChanged = false;
|
||||
@@ -90,9 +93,8 @@ namespace Webshop.Application.Services.Customers
|
||||
{
|
||||
identityUser.Email = profileDto.Email;
|
||||
identityUser.NormalizedEmail = _userManager.NormalizeEmail(profileDto.Email);
|
||||
identityUser.UserName = profileDto.Email; // Oft wird der UserName auch mit der E-Mail synchronisiert
|
||||
identityUser.UserName = profileDto.Email;
|
||||
identityUser.NormalizedUserName = _userManager.NormalizeName(profileDto.Email);
|
||||
// Optional: user.EmailConfirmed = false; wenn Sie Bestätigungs-E-Mails senden
|
||||
identityUserChanged = true;
|
||||
}
|
||||
|
||||
@@ -100,7 +102,6 @@ namespace Webshop.Application.Services.Customers
|
||||
if (!string.IsNullOrEmpty(profileDto.PhoneNumber) && identityUser.PhoneNumber != profileDto.PhoneNumber)
|
||||
{
|
||||
identityUser.PhoneNumber = profileDto.PhoneNumber;
|
||||
// Optional: identityUser.PhoneNumberConfirmed = false;
|
||||
identityUserChanged = true;
|
||||
}
|
||||
|
||||
@@ -116,7 +117,5 @@ namespace Webshop.Application.Services.Customers
|
||||
|
||||
return (true, "Profil und Kontaktdaten erfolgreich aktualisiert.");
|
||||
}
|
||||
|
||||
// << ENTFERNT: UpdateMyContactInfoAsync >>
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user