/// <summary> /// Initialize data /// </summary> /// <param name="userManager"></param> /// <param name="roleManager"></param> /// <param name="token"></param> /// <returns></returns> public async Task InitializeDatabaseAsync( UserManager <User> userManager, RoleManager <UserRole> roleManager, CancellationToken token = default) { await Database.EnsureCreatedAsync(); if (await roleManager.FindByNameAsync("ROOT") == null) { await roleManager.CreateAsync(new UserRole { Name = "ROOT", NormalizedName = "ROOT" }); } if (await roleManager.FindByNameAsync("COMMONUSER") == null) { await roleManager.CreateAsync(new UserRole { Name = "COMMONUSER", NormalizedName = "COMMONUSER" }); } if (await userManager.FindByNameAsync("root") == null) { var user = new User { UserName = "******" }; await userManager.CreateAsync(user, "123456"); await userManager.AddToRoleAsync(user, "ROOT"); } for (var i = 1; i <= 10; i++) { var userName = "******" + i; if (await userManager.FindByNameAsync(userName) == null) { var user = new User { UserName = userName }; await userManager.CreateAsync(user, "123456"); await userManager.AddToRoleAsync(user, "COMMONUSER"); } } if (!await Curves.AnyAsync(x => x.Id == "bancor", token)) { Curves.Add(new Curve { Id = "bancor", PriceSupplyFunction = "${supply} * (pow((1 + (x - ${balance}) / ${balance}),${cw}) - 1) + ${supply}", BalanceSupplyFunction = "x / ((${supply} * (pow((1 + (x - ${balance}) / ${balance}),${cw}) - 1) + ${supply}) * ${cw})", Description = "", Arguments = JsonConvert.SerializeObject(new List <CurveArgument> { new CurveArgument { Id = "supply", ControlType = CurveArgumentControlType.Input, Name = "Initial Supply (Token)" }, new CurveArgument { Id = "balance", ControlType = CurveArgumentControlType.Input, Name = "Initial Balance (EOS)" }, new CurveArgument { Id = "cw", ControlType = CurveArgumentControlType.Slider, Name = "Reserve Ratio" } }) }); await SaveChangesAsync(); } if (!await Curves.AnyAsync(x => x.Id == "daibo", token)) { Curves.Add(new Curve { Id = "daibo", PriceSupplyFunction = "${k} * x", BalanceSupplyFunction = "${k}/2 * x^2", SupplyBalanceFunction = "(2/${k})^(0.5) * x^(0.5)", PriceBalanceFunction = "((2/${k})^(0.5) * x^(0.5)) * ${k}", Description = "", Arguments = JsonConvert.SerializeObject(new List <CurveArgument> { new CurveArgument { Id = "k", ControlType = CurveArgumentControlType.Slider, Name = "Increase Ratio" } }) }); await SaveChangesAsync(); } if (!await Constants.AnyAsync(x => x.Id == "action_pos", token)) { Constants.Add(new Constant { Id = "action_pos", Value = "-1" }); await SaveChangesAsync(); } }