MainLayout.razor 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. @inherits LayoutComponentBase
  2. @using HyperCube.Models;
  3. @using Console = HyperCube.Utils.AdvConsole;
  4. @using Microsoft.AspNetCore.Identity;
  5. @inject AuthenticationStateProvider AuthenticationStateProvider
  6. @inject UserManager<IdentityUser> UserManager
  7. <AuthorizeView>
  8. <Authorized>
  9. <div class="fullpage-wrapper">
  10. <Header />
  11. @*@if (connected)
  12. {
  13. <span class="dot-green"></span>
  14. }
  15. else
  16. {
  17. <span class="dot-red"></span>
  18. }
  19. <InputSelect @bind-Value="Networks" class="custom-select">
  20. @foreach (var value in Networks)
  21. {
  22. <option>@value</option>
  23. }
  24. </InputSelect>*@
  25. <div class="account-content">
  26. <Sidebar />
  27. <main class="tabs">
  28. @Body
  29. </main>
  30. </div>
  31. </div>
  32. </Authorized>
  33. <NotAuthorized>
  34. @Body
  35. </NotAuthorized>
  36. </AuthorizeView>
  37. @code {
  38. List<string> Networks = new();
  39. bool connected = false;
  40. protected override async Task OnInitializedAsync()
  41. {
  42. try
  43. {
  44. AccountModel.Current = await GetCurrentAcc();
  45. //await Blockchain.GetInstance().Initialize();
  46. Console.WriteLine("OnInitializedAsync RegisterNetworks");
  47. await Blockchain.RegisterNetworks();
  48. if (Blockchain.Connected != "" && Blockchain.Connected != "none")
  49. {
  50. connected = true;
  51. Networks.Add(Blockchain.Connected);
  52. }
  53. else
  54. {
  55. connected = false;
  56. Networks.Add("Blockchain not connected");
  57. }
  58. }
  59. catch (Exception e)
  60. {
  61. Console.WriteLine(e.Message + ", stack trace:" + e.StackTrace);
  62. }
  63. }
  64. private async Task<AccountModel> GetCurrentAcc()
  65. {
  66. AccountModel account = new();
  67. var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync();
  68. var user = authState.User;
  69. if (user.Identity.IsAuthenticated)
  70. {
  71. var currentUser = await UserManager.GetUserAsync(user);
  72. account.UUID = currentUser.Id;
  73. //account.Name = currentUser.UserName;
  74. //account.Email = currentUser.Email;
  75. var acc = AccountModel.Find(account.UUID);
  76. if (acc != null)
  77. account = acc;
  78. ///tmp
  79. //account.AccRole = Role.User;
  80. return account;
  81. }
  82. return null;
  83. }
  84. }