コード例 #1
0
        public static void CreateAccount(CommandArgs args)
        {
            var email    = args.Read <string>();
            var password = args.Read <string>();

            if (email != null && password != null)
            {
                var salt = new byte[0].GenerateRandomKey(32).ToHexString();

                // Check if account exists.
                if (!Database.Bnet.Any <Account>(a => a.Email == email))
                {
                    var account = new Account
                    {
                        Email            = email,
                        PasswordVerifier = PasswordHash.GeneratePasswordVerifier(email, password, salt).ToHexString(),
                        Salt             = salt,
                        // Region = XX
                        Region = 7
                    };

                    var gameAccount = new GameAccount
                    {
                        AccountId = Database.Bnet.GetAutoIncrementValue <Account, uint>(),
                        Game      = "WoW",
                        Index     = 1,
                        // Region = XX
                        Region         = 7,
                        ExpansionLevel = 6
                    };

                    if (Database.Bnet.Add(account) && Database.Bnet.Add(gameAccount))
                    {
                        Log.Message(LogTypes.Success, $"Account '{email}' successfully created.");
                    }
                    else
                    {
                        Log.Message(LogTypes.Error, $"Account creation failed.");
                    }
                }
                else
                {
                    Log.Message(LogTypes.Error, $"Account '{email}' already in database.");
                }
            }
        }