Account.razor 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. @page "/account"
  2. @using HyperCube.Models;
  3. @using Microsoft.AspNetCore.Identity;
  4. @inject AuthenticationStateProvider AuthenticationStateProvider
  5. @inject UserManager<IdentityUser> UserManager;
  6. @attribute [Authorize]
  7. <h3>Личный кабинет</h3>
  8. <EditForm Model="@account">
  9. <table class="table-bordered" cellspacing="5" cellpadding="5">
  10. <tbody>
  11. <tr>
  12. <td>UUID:</td>
  13. <td>@account.UUID</td>
  14. </tr>
  15. <tr>
  16. <td>Name:</td>
  17. <td>@account.Name</td>
  18. </tr>
  19. <tr>
  20. <td>Email:</td>
  21. <td>@account.Email</td>
  22. </tr>
  23. <tr>
  24. <td>ETH Address:</td>
  25. <td>@account.eth_address</td>
  26. </tr>
  27. </tbody>
  28. </table>
  29. </EditForm>
  30. @code {
  31. private AccountModel account = new();
  32. protected override async Task OnInitializedAsync()
  33. {
  34. account = await GetCurrentAcc();
  35. }
  36. private async Task<AccountModel> GetCurrentAcc()
  37. {
  38. AccountModel account = new();
  39. var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync();
  40. var user = authState.User;
  41. if (user.Identity.IsAuthenticated)
  42. {
  43. var currentUser = await UserManager.GetUserAsync(user);
  44. var acc = AccountModel.Find(currentUser.Id);
  45. if (acc != null)
  46. account = acc;
  47. account.AccRole = Role.User;
  48. return account;
  49. }
  50. return null;
  51. }
  52. }