Ejemplo n.º 1
0
        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
        }
Ejemplo n.º 3
0
        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"));
        }