Exemple #1
0
        public void InvokeBackOffice(CloudScriptMethod cloudScriptMethod, Action <CloudScriptResponse, CloudScriptMethod> resultCallBack)
        {
            cloudScriptMethod.Entity = CurrentEntity.Id;

            if (isWorking)
            {
                realtimeQueue.Add(() => InvokeBackOffice(cloudScriptMethod, resultCallBack));
                return;
            }

            if (resultCallBack == null)
            {
                //Only use for "shoot in the dark";
                resultCallBack = DummyResultCallback;
            }

            if (cloudScriptMethod.Attempt == -1)
            {
                cloudScriptMethod.Attempt = retryCountMax;
            }
            else
            {
                cloudScriptMethod.Attempt++;
            }

            cloudScriptMethod.Environement = BackOfficeEnvironement.ToString();

            isWorking = true;
            ExecuteCloudScriptRequest request = new ExecuteCloudScriptRequest()
            {
                FunctionName = "invokeBioIncBackOffice", FunctionParameter = cloudScriptMethod
            };

            PlayFabClientAPI.ExecuteCloudScript(request, (ExecuteCloudScriptResult r) => FromExecuteCloudScriptResult(r, cloudScriptMethod, resultCallBack), (PlayFabError e) => FromExecuteCloudScriptResult(null, cloudScriptMethod, resultCallBack));
        }
Exemple #2
0
        public void AddToStack(string stackId, CloudScriptMethod cloudScriptMethod)
        {
            CloudScriptStackMethod stackMethod = new CloudScriptStackMethod();

            stackMethod.StackId           = stackId;
            stackMethod.CloudScriptMethod = cloudScriptMethod;
            this.cloudScriptStackMethods.Add(stackMethod);
        }
Exemple #3
0
        private void FromExecuteCloudScriptResult(ExecuteCloudScriptResult result, CloudScriptMethod cloudScriptMethod, Action <CloudScriptResponse, CloudScriptMethod> resultCallBack)
        {
            isWorking = false;
            bool success = false;
            CloudScriptResponse jsonResponse = null;

            if (result != null && result.Error == null && result.FunctionResult != null)
            {
                try
                {
                    jsonResponse = JsonConvert.DeserializeObject <CloudScriptResponse>(result.FunctionResult.ToString());

                    if (jsonResponse.ResponseCode != ResponseCode.Success)
                    {
                        if (OnDataMissMatchDetected != null && !cloudScriptMethod.IgnoreError)
                        {
                            OnDataMissMatchDetected(OnDataMissMatchDetectedEventType.BackofficeError);
                        }
                    }

                    success = true;
                }
                catch (Exception e)
                {
                    UnityEngine.Debug.Log("CloudScript Serialisation error:" + e.Message);
                    UnityEngine.Debug.Log(result.FunctionResult);

                    if (OnDataMissMatchDetected != null && !cloudScriptMethod.IgnoreError)
                    {
                        OnDataMissMatchDetected(OnDataMissMatchDetectedEventType.HostUnreachable);
                    }
                }
            }
            else
            {
                if (result != null)
                {
                    UnityEngine.Debug.Log("CloudScript Error:" + result.Error.Error + " " + result.Error.Message);
                }
                if (OnDataMissMatchDetected != null && !cloudScriptMethod.IgnoreError)
                {
                    OnDataMissMatchDetected(OnDataMissMatchDetectedEventType.HostUnreachable);
                }
            }

            if (success)
            {
                resultCallBack.Invoke(jsonResponse, cloudScriptMethod);
            }
        }
Exemple #4
0
 private void DummyResultCallback(CloudScriptResponse arg1, CloudScriptMethod arg2)
 {
 }