public Coroutine CreateNewUser(string inUserName, string inPasswordHash, string inNickName, string inEmail, bool inIWantNews, E_UserAcctKind inKind, System.Action <bool> callback) { E_AppProvider appProvider = E_AppProvider.Madfinger; // reset authentication status. New player is creating... SetAuthenticationStatus(E_AuthenticationStatus.None); return(StartCoroutine(CreateNewUser_Coroutine(inUserName, inPasswordHash, inNickName, inEmail, inIWantNews, inKind, appProvider, callback))); }
IEnumerator CreateNewUser_Coroutine(string inUserName, string inPasswordHash, string inNickName, string inEmail, bool inIWantNews, E_UserAcctKind inKind, E_AppProvider inAppProvider, System.Action <bool> callback) { // create user { _CreateNewUser action = new _CreateNewUser(inUserName, inPasswordHash, productID); GameCloudManager.AddAction(action); while (action.isDone == false) { yield return(new WaitForEndOfFrame()); } if (action.isFailed == true) { callback(false); yield break; } } // get primary key UnigueUserID userID; { UserGetPrimaryKey action = new UserGetPrimaryKey(inUserName); GameCloudManager.AddAction(action); while (action.isDone == false) { yield return(new WaitForEndOfFrame()); } userID = new UnigueUserID(action.primaryKey, inPasswordHash, productID); } // set user data { Dictionary <string, string> userData = new Dictionary <string, string>(); userData.Add(CloudServices.PROP_ID_NICK_NAME, inNickName); userData.Add(CloudServices.PROP_ID_EMAIL, inEmail); userData.Add(CloudServices.PROP_ID_I_WANT_NEWS, inIWantNews.ToString()); userData.Add(CloudServices.PROP_ID_ACCT_KIND, inKind.ToString()); List <BaseCloudAction> actions = new List <BaseCloudAction>(); actions.Add(new SetUserDataList(userID, userData)); if (inAppProvider != E_AppProvider.Madfinger) { actions.Add(new SetUserProductData(userID, CloudServices.PROP_ID_APP_PROVIDER, inAppProvider.ToString())); } CloudActionSerial action = new CloudActionSerial(null, BaseCloudAction.NoTimeOut, actions.ToArray()); GameCloudManager.AddAction(action); while (action.isDone == false) { yield return(new WaitForEndOfFrame()); } } callback(true); }