From ce539ffb55c13cc62ed7d670fc937de5d8a3ad70 Mon Sep 17 00:00:00 2001 From: kokora <117209044+devkokora@users.noreply.github.com> Date: Sat, 27 Jul 2024 14:49:04 +0700 Subject: [PATCH] Update NavMenu.razor.cs Try to used .GetAwaiter().GetResult() for help blocking Async getting SQL data multiple task. --- .../App/Layout/NavMenu.razor.cs | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/EventManagementSystem/App/Layout/NavMenu.razor.cs b/EventManagementSystem/App/Layout/NavMenu.razor.cs index 22d4769..34dc185 100644 --- a/EventManagementSystem/App/Layout/NavMenu.razor.cs +++ b/EventManagementSystem/App/Layout/NavMenu.razor.cs @@ -15,27 +15,31 @@ public partial class NavMenu : ComponentBase [Inject] private UserManager? UserManager { get; set; } [Inject] - private IUserService UserService { get; set; } + // private IUserService UserService { get; set; } private User? CurrentUser { get; set; } private bool isAdmin = false; protected override async Task OnInitializedAsync() { - UserService.Clear(); + // UserService.Clear(); if (AuthenticationStateProvider is not null && UserManager is not null) { - AuthenticationState? authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); + // Used .GetAwaiter().GetResult() for blocking async problem on blazor with Identity + //AuthenticationState? authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); + AuthenticationState? authState = AuthenticationStateProvider.GetAuthenticationStateAsync().GetAwaiter().GetResult(); ClaimsPrincipal? UserClaims = authState.User; if (UserClaims.Identity!.IsAuthenticated) { - CurrentUser = await UserManager.GetUserAsync(UserClaims); + // CurrentUser = await UserManager.GetUserAsync(UserClaims); + CurrentUser = UserManager.GetUserAsync(UserClaims).GetAwaiter().GetResult(); if (CurrentUser is not null) { - isAdmin = await UserManager.IsInRoleAsync(CurrentUser, nameof(UserRoles.Admin)); + // isAdmin = await UserManager.IsInRoleAsync(CurrentUser, nameof(UserRoles.Admin)); + isAdmin = UserManager.IsInRoleAsync(CurrentUser, nameof(UserRoles.Admin)).GetAwaiter().GetResult(); } } } - UserService.Initailize(); + // UserService.Initailize(); } }