private async Task <Result> ExecutePlayFabCloudFunction(string functionName, object functionParameter) { try { var execute = await global::PlayFab.PlayFabCloudScriptAPI.ExecuteFunctionAsync(new global::PlayFab.CloudScriptModels.ExecuteFunctionRequest { FunctionName = functionName, FunctionParameter = JsonUtil.Serialize(functionParameter), GeneratePlayStreamEvent = true, }); if (execute.Error == null) { return(Result.Ok()); } else { var exception = new PlayFabException(execute.Error); UnityEngine.Debug.LogException(exception); return(Result.Failure(exception)); } } catch (Exception ex) { UnityEngine.Debug.LogError($"Exception occured when calling Function {functionName}"); UnityEngine.Debug.LogException(ex); return(Result.Failure(ex)); } }
private async Task <ResultT <T> > ExecutePlayFabCloudFunction <T>(string functionName, object functionParameter) where T : class { try { var execute = await global::PlayFab.PlayFabCloudScriptAPI.ExecuteFunctionAsync(new global::PlayFab.CloudScriptModels.ExecuteFunctionRequest { FunctionName = functionName, FunctionParameter = JsonUtil.Serialize(functionParameter), GeneratePlayStreamEvent = true, }); if (execute.Error == null) { // NOTE [bgish]: Even though our cloud functions return strings, PlayFab converts them to objects, so lets convert them back to a string string resultJson = JsonUtil.Serialize(execute.Result.FunctionResult); return(ResultT <T> .Ok(JsonUtil.Deserialize <T>(resultJson))); } else { var exception = new PlayFabException(execute.Error); UnityEngine.Debug.LogException(exception); return(ResultT <T> .Failure(exception)); } } catch (Exception ex) { UnityEngine.Debug.LogError($"Exception occured when calling Function {functionName}"); UnityEngine.Debug.LogException(ex); return(ResultT <T> .Failure(ex)); } }