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)); }
public void AddToStack(string stackId, CloudScriptMethod cloudScriptMethod) { CloudScriptStackMethod stackMethod = new CloudScriptStackMethod(); stackMethod.StackId = stackId; stackMethod.CloudScriptMethod = cloudScriptMethod; this.cloudScriptStackMethods.Add(stackMethod); }
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); } }
private void DummyResultCallback(CloudScriptResponse arg1, CloudScriptMethod arg2) { }