Ejemplo n.º 1
0
        private IEnumerator UpgradeWithPlayerPortalAsync(string returnUrl, ResultCallback <UpgradeUserRequest> callback)
        {
            Result <UpgradeUserRequest> result = null;

            yield return(this.userAccount.UpgradeWithPlayerPortal(returnUrl, ttl, r => result = r));

            callback.Try(result);

            while (result == null)
            {
                System.Threading.Thread.Sleep(100);
                yield return(null);
            }

            HttpListenerExtension.StartHttpListener(result.Value.temporary_session_id);

            while (HttpListenerExtension.listenerResult == null)
            {
                System.Threading.Thread.Sleep(100);
                yield return(null);

                if (HttpListenerExtension.availableLocalUrl != returnUrl)
                {
                    break;
                }
            }

            if (HttpListenerExtension.listenerResult != null)
            {
                if (!HttpListenerExtension.listenerResult.IsError)
                {
                    Action handler = Upgraded;
                    if (handler != null)
                    {
                        handler();
                    }
                }
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Upgrade a headless account using external browser. User must be logged in before this method can be
 /// used.
 /// </summary>
 /// <param name="callback">Returns a Result that contains UpgradeUserRequest via callback when completed</param>
 public void UpgradeWithPlayerPortal(ResultCallback <UpgradeUserRequest> callback)
 {
     Report.GetFunctionLog(this.GetType().Name);
     this.coroutineRunner.Run(
         UpgradeWithPlayerPortalAsync(HttpListenerExtension.GetAvailableLocalUrl(), callback));
 }