private void OnRecvRegister(IChannel channel, Message message) { // write to database CRegister request = message as CRegister; SRegister response = new SRegister(); // ClientTipInfo(channel, "TODO: write register info to database"); var hasAccount = GameDataBase.SQLQueryScalar(string.Format("Select username from Account where username='******';", request.user)); if (hasAccount != null) { // same username response.status = SRegister.Status.Fail; channel.Send(response); return; } // using transaction to create account var conn = GameDataBase.GetConnection(); var trans = conn.BeginTransaction(); var accountInsert = conn.CreateCommand(); accountInsert.CommandText = "Insert Into Account(account_id, username, password) Values(DEFAULT, @username, @password) Returning account_id;"; accountInsert.Parameters.AddWithValue("username", request.user); accountInsert.Parameters.AddWithValue("password", request.password); var account_id = accountInsert.ExecuteScalar(); if (account_id == null) { // Register Fail trans.Rollback(); response.status = SRegister.Status.Error; channel.Send(response); return; } var playerInsert = conn.CreateCommand(); playerInsert.CommandText = "Insert Into Player(player_id, account_id) Values(DEFAULT, @account_id)"; playerInsert.Parameters.AddWithValue("account_id", (int)account_id); var res = playerInsert.ExecuteNonQuery(); if (res > 0) { // Success trans.Commit(); response.status = SRegister.Status.Success; } else { // Fail trans.Rollback(); response.status = SRegister.Status.Error; } channel.Send(response); return; }
public override IEnumerator OnLoad(Request request) { SRegister sRegister = new SRegister(); yield return(StartCoroutine(sRegister.RequestList())); allCharacters = sRegister.characters; foreach (MCharacter character in allCharacters) { character.StatusInit(); } ChangeGender(); //yield return StartCoroutine(base.OnLoad(request)); }
private void OnRecvRegister(IChannel channel, Message message) { SRegister request = message as SRegister; switch (request.status) { case SRegister.Status.Success: //Debug.Log("Register success"); MessageBox.Show("Register success."); break; case SRegister.Status.Fail: MessageBox.Show("Username already exists. Please try a different one."); break; default: Debug.Log("Register Fail"); MessageBox.Show("Fail to do that. Please check your network and try again."); break; } }
public IEnumerator ToSubmit(string accountText, string passwordText, string nameText) { SRegister sRegister = new SRegister(); yield return(this.StartCoroutine(sRegister.RequestInsert(accountText, passwordText, nameText))); if (sRegister.responseInsert.result) { CConnectingDialog.ToShow(); yield return(StartCoroutine(App.Util.Global.SUser.RequestLogin(account.text.Trim(), password.text.Trim()))); if (App.Util.Global.SUser.self == null) { CConnectingDialog.ToClose(); this.Close(); yield break; } yield return(StartCoroutine(Global.SUser.RequestGet())); //App.Util.LSharp.LSharpScript.Instance.UpdatePlayer(); AppManager.LoadScene("Home", null); } }