internal sealed class AccountDataState
{
public string? Username { get; private set; }
private readonly IHttpContextAccessor _httpContextAccessor;
private readonly UserManager<ApplicationUser> _userManager;
private readonly IdentityUserAccessor _userAccessor;
public AccountDataState(IHttpContextAccessor httpContextAccessor, UserManager<ApplicationUser> userManager, IdentityUserAccessor userAccessor)
{
_httpContextAccessor = httpContextAccessor;
_userManager = userManager;
_userAccessor = userAccessor;
}
public event Action OnChange;
public async Task InitializeAsync()
{
var user = await _userAccessor.GetRequiredUserAsync(_httpContextAccessor.HttpContext);
Username = await _userManager.GetUserNameAsync(user);
NotifyStateChanged();
}
private void NotifyStateChanged() => OnChange?.Invoke();
}
internal sealed class AccountDataState
{
public string? Username { get; private set; }
private readonly IHttpContextAccessor _httpContextAccessor;
private readonly UserManager<ApplicationUser> _userManager;
private readonly IdentityUserAccessor _userAccessor;
public AccountDataState(IHttpContextAccessor httpContextAccessor, UserManager<ApplicationUser> userManager, IdentityUserAccessor userAccessor)
{
_httpContextAccessor = httpContextAccessor;
_userManager = userManager;
_userAccessor = userAccessor;
}
public event Action OnChange;
public async Task InitializeAsync()
{
var user = await _userAccessor.GetRequiredUserAsync(_httpContextAccessor.HttpContext);
Username = await _userManager.GetUserNameAsync(user);
NotifyStateChanged();
}
private void NotifyStateChanged() => OnChange?.Invoke();
}