public void CloudScript(UUnitTestContext testContext) { var request = new ClientModels.ExecuteCloudScriptRequest { FunctionName = "helloWorld" }; var cloudTask = clientApi.ExecuteCloudScriptAsync(request, null, testTitleData.extraHeaders); ContinueWithContext(cloudTask, testContext, CloudScriptContinued, true, "Failed to Execute CloudScript", true); }
private static async Task PostTestResultsToCloudScript(TestSuiteReport testReport) { #if !DISABLE_PLAYFABCLIENT_API PfClient.GetSettings().TitleId = TestTitleData.titleId; var loginRequest = new LoginWithCustomIDRequest { CustomId = PlayFabSettings.BuildIdentifier, CreateAccount = true, }; var saveRequest = new ExecuteCloudScriptRequest { FunctionName = "SaveTestData", FunctionParameter = new Dictionary <string, object> { { "customId", PlayFabSettings.BuildIdentifier }, { "testReport", new[] { testReport } } }, GeneratePlayStreamEvent = true }; try { var loginResult = await PfClient.LoginWithCustomIDAsync(loginRequest); var saveResult = await PfClient.ExecuteCloudScriptAsync(saveRequest); _onComplete?.Invoke(saveResult); } catch (Exception e) { var failResult = new PlayFabResult <ExecuteCloudScriptResult>(); failResult.Error = new PlayFabError(); failResult.Error.ErrorMessage = e.ToString(); _onComplete?.Invoke(failResult); } #endif }
public bool ExecuteCloudScript <TIn, TOut>(string functionName, TIn functionParameter, Dictionary <string, string> extraHeaders, out TOut result, out string errorReport) { // Perform the request var request = new ExecuteCloudScriptRequest { FunctionName = functionName, FunctionParameter = functionParameter, GeneratePlayStreamEvent = true }; var task = clientApi.ExecuteCloudScriptAsync(request, null, extraHeaders); task.Wait(); errorReport = PlayFabUtil.GetCloudScriptErrorReport(task.Result); if (task.Result.Error != null) { Console.WriteLine("Execute Cloudscript failure: " + functionName + ":\n" + JsonWrapper.SerializeObject(functionParameter)); Console.WriteLine(errorReport); result = default(TOut); return(false); } // Re-serialize as the target type var json = JsonWrapper.SerializeObject(task.Result.Result.FunctionResult); if (verbose) { Console.WriteLine("===== Verbose ExecuteCloudScript Json: ====="); Console.WriteLine(json); Console.WriteLine("===== End ====="); } try { result = JsonWrapper.DeserializeObject <TOut>(json); } catch (Exception) { Console.WriteLine("Could not serialize text: \"" + json + "\" as " + typeof(TOut).Name); result = default(TOut); return(false); } return(task.Result.Error == null && task.Result.Result.Error == null && (result != null || json == "null")); }