AccountModel.cs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. using System;
  2. using System.Numerics;
  3. using System.Threading.Tasks;
  4. using System.Collections.Generic;
  5. using Console = HyperCube.Utils.AdvConsole;
  6. namespace HyperCube.Models
  7. {
  8. public enum Role { Admin = 1, Verifier, User }
  9. public class AccountModel
  10. {
  11. public static Dictionary<string, AccountModel> Loaded = new();
  12. public static AccountModel Current;
  13. public string eth_address { get; set; }
  14. /// <summary>
  15. /// ASP Identity ID
  16. /// </summary>
  17. public string UUID { get; set; }
  18. public string Name { get; set; }
  19. public string Email { get; set; }
  20. public Role AccRole { get; set; }
  21. public AccountModel()
  22. {
  23. }
  24. public static AccountModel GetCurrent()
  25. {
  26. return Current;
  27. }
  28. public static AccountModel Find(string uuid)
  29. {
  30. if (uuid == null)
  31. return null;
  32. if (Loaded.ContainsKey(uuid))
  33. return Loaded[uuid];
  34. else
  35. return null;
  36. }
  37. public static BigInteger ConvertBalance(string hex)
  38. {
  39. string newHex = hex.Remove(0, 2);
  40. var balance = System.Numerics.BigInteger.Parse("0"+ newHex, System.Globalization.NumberStyles.HexNumber );
  41. Console.WriteLine($"ConvertBalance {hex} {balance}");
  42. return balance;
  43. }
  44. public static async void InitializeAccounts()
  45. {
  46. Loaded = await MySQLConnector.Instance().SQLSelectASPUsers();
  47. Console.WriteLine("InitializeAccounts");
  48. }
  49. public async Task GetEthAddress()
  50. {
  51. var addr = await Blockchain.GetMain().CreateBlockchainAccount(this);
  52. }
  53. public async Task<string> GetBalance()
  54. {
  55. var res = await Blockchain.GetMain().GetBalance(eth_address);
  56. var balanceInt = ConvertBalance(res);
  57. string balance = balanceInt.ToString();
  58. //Console.WriteLine($"GetBalance {balance}");
  59. return balance;
  60. }
  61. }
  62. }