Exemplo n.º 1
0
        /// <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();
            }
        }