Example #1
0
        public ErrorPromise <RegisterationErrorResultStatus> Register(string username, string password)
        {
            IDispatcher dispatcher = GameDispatcher.Dispatcher;
            ErrorDeferred <RegisterationErrorResultStatus> deferred = new ErrorDeferred <RegisterationErrorResultStatus>();
            string authenticationId = InfoResolver.Resolve <BacktoryInfo>().AuthenticationId;
            string url = "https://api.backtory.com/auth/users";

            ThreadPool.QueueUserWorkItem(state =>
            {
                try
                {
                    HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(new Uri(url));
                    webRequest.KeepAlive      = true;
                    webRequest.Method         = "POST";
                    webRequest.ContentType    = "application/json; charset=utf-8";
                    webRequest.Headers.Add("X-Backtory-Authentication-Id", authenticationId);

                    string body              = JsonConvert.SerializeObject(new { username, password });
                    byte[] resoponse         = Encoding.UTF8.GetBytes(body);
                    webRequest.ContentLength = resoponse.Length;
                    using (System.IO.Stream requestStream = webRequest.GetRequestStream())
                    {
                        requestStream.Write(resoponse, 0, resoponse.Length);
                    }
                    using (WebResponse webResponse = webRequest.GetResponse())
                    {
                        using (System.IO.Stream responseStream = webResponse.GetResponseStream())
                        {
                            using (StreamReader reader = new StreamReader(responseStream))
                            {
                                reader.ReadToEnd();
                            }
                        }
                    }
                    dispatcher.Dispach(() =>
                    {
                        deferred.Resolve();
                    });
                }
                catch (WebException we)
                {
                    dispatcher.Dispach(() =>
                    {
                        HttpWebResponse httpWebResponse = we.Response as HttpWebResponse;
                        if (httpWebResponse != null)
                        {
                            if (httpWebResponse.StatusCode == HttpStatusCode.Conflict)
                            {
                                deferred.Reject(RegisterationErrorResultStatus.UsernameIsInUse);
                                return;
                            }
                        }
                        deferred.Reject(RegisterationErrorResultStatus.CannotConnectToServer);
                    });
                }
            });

            return(deferred.Promise());
        }
Example #2
0
 private void FailedDefered(ShowVideoFailed failed)
 {
     if (_deferred != null)
     {
         ErrorDeferred <ShowVideoFailed> errorDeferred = _deferred;
         _deferred = null;
         errorDeferred.Reject(failed);
     }
 }
Example #3
0
        public ErrorPromise <ShowVideoFailed> ShowVideo(string zone, bool skipable)
        {
            Initialize();
            ErrorDeferred <ShowVideoFailed> deferred = new ErrorDeferred <ShowVideoFailed>();

            if (_deferred != null)
            {
                deferred.Reject(ShowVideoFailed.AlreadyShowingVideo);
                return(deferred.Promise());
            }
            _deferred   = deferred;
            _isSkipable = skipable;
            Tapsell.requestAd(zone, false,
                              result =>
            {
                Debug.Log("On ad exists");
                // onAdAvailable
                TapsellShowOptions showOptions = new TapsellShowOptions();
                showOptions.backDisabled       = false;
                showOptions.immersiveMode      = false;
                showOptions.rotationMode       = TapsellShowOptions.ROTATION_UNLOCKED;
                showOptions.showDialog         = true;
                Tapsell.showAd(result.adId, showOptions);
            },

                              zoneId =>
            {
                Debug.Log("On no ad available");
                // onNoAdAvailable
                FailedDefered(ShowVideoFailed.NoVideoAvilable);
            },

                              error =>
            {
                Debug.Log("On Error");
                // onError
                FailedDefered(ShowVideoFailed.ProviderError);
            },

                              zoneId =>
            {
                Debug.Log("On no network");
                // onNoNetwork
                FailedDefered(ShowVideoFailed.ProviderError);
            },

                              result =>
            {
                Debug.Log("On Expire");
                // onExpiring
                FailedDefered(ShowVideoFailed.ProviderError);
                // this ad is expired, you must download a new ad for this zone
            });
            return(deferred.Promise());
        }
Example #4
0
 public ErrorPromise <ShowVideoFailed> ShowVideo(string zone, bool skipable)
 {
     if (_deferred != null)
     {
         ErrorDeferred <ShowVideoFailed> deferred = new ErrorDeferred <ShowVideoFailed>();
         deferred.Reject(ShowVideoFailed.AlreadyShowingVideo);
         return(deferred.Promise());
     }
     _deferred = new ErrorDeferred <ShowVideoFailed>();
     TaplighInterface.Instance.ShowVideoAd(skipable);
     return(_deferred.Promise());
 }
Example #5
0
        public void Initialize()
        {
            if (_initialized)
            {
                return;
            }
            _initialized = true;
            TaplighInterface.Instance.InitializeTapligh(InfoResolver.Resolve <TaplighInfo>().Key);
            TaplighInterface.Instance.OnShowAdListener = (result, s) =>
            {
                switch (result)
                {
                case ShowAdResult.NO_INTERNET_ACSSES:
                case ShowAdResult.BAD_TOKEN_USED:
                case ShowAdResult.INTERNAL_ERROR:
                {
                    if (_deferred == null)
                    {
                        return;
                    }
                    ErrorDeferred <ShowVideoFailed> errorDeferred = _deferred;
                    _deferred = null;
                    errorDeferred.Reject(ShowVideoFailed.ProviderError);
                }
                break;

                case ShowAdResult.NO_AD_AVAILABLE:
                case ShowAdResult.NO_AD_READY:
                {
                    if (_deferred == null)
                    {
                        return;
                    }
                    ErrorDeferred <ShowVideoFailed> errorDeferred = _deferred;
                    _deferred = null;
                    errorDeferred.Reject(ShowVideoFailed.NoVideoAvilable);
                }
                break;

                case ShowAdResult.AD_AVAILABLE:
                    break;

                case ShowAdResult.AD_VIEWED_COMPLETELY:
                    break;

                case ShowAdResult.AD_CLICKED:
                    break;

                case ShowAdResult.AD_IMAGE_CLOSED:
                    break;

                case ShowAdResult.AD_VIDEO_CLOSED_AFTER_FULL_VIEW:
                {
                    if (_deferred == null)
                    {
                        return;
                    }
                    ErrorDeferred <ShowVideoFailed> errorDeferred = _deferred;
                    _deferred = null;
                    errorDeferred.Resolve();
                }
                break;

                case ShowAdResult.AD_VIDEO_CLOSED_ON_VIEW:
                {
                    if (_deferred == null)
                    {
                        return;
                    }
                    ErrorDeferred <ShowVideoFailed> errorDeferred = _deferred;
                    _deferred = null;
                    errorDeferred.Reject(ShowVideoFailed.Cancel);
                }
                break;

                default:
                    throw new ArgumentOutOfRangeException("result", result, null);
                }
            };
        }