@page "/Account/Manage" @using System.ComponentModel.DataAnnotations @using Microsoft.AspNetCore.Identity @using adminSystem.UI.Data @inject UserManager UserManager @inject SignInManager SignInManager @inject IdentityUserAccessor UserAccessor @inject IdentityRedirectManager RedirectManager Profile

Profile

@code { private ApplicationUser user = default!; private string? username; private string? phoneNumber; [CascadingParameter] private HttpContext HttpContext { get; set; } = default!; [SupplyParameterFromForm] private InputModel Input { get; set; } = new(); protected override async Task OnInitializedAsync() { user = await UserAccessor.GetRequiredUserAsync(HttpContext); username = await UserManager.GetUserNameAsync(user); phoneNumber = await UserManager.GetPhoneNumberAsync(user); Input.PhoneNumber ??= phoneNumber; } private async Task OnValidSubmitAsync() { if (Input.PhoneNumber != phoneNumber) { var setPhoneResult = await UserManager.SetPhoneNumberAsync(user, Input.PhoneNumber); if (!setPhoneResult.Succeeded) { RedirectManager.RedirectToCurrentPageWithStatus("Error: Failed to set phone number.", HttpContext); } } await SignInManager.RefreshSignInAsync(user); RedirectManager.RedirectToCurrentPageWithStatus("Your profile has been updated", HttpContext); } private sealed class InputModel { [Phone] [Display(Name = "Phone number")] public string? PhoneNumber { get; set; } } }