コード例 #1
0
        /// <summary>
        /// Creates a new experiment for a title.
        /// </summary>
        public void CreateExperiment(CreateExperimentRequest request, Action <CreateExperimentResult> resultCallback, Action <PlayFabError> errorCallback, object customData = null, Dictionary <string, string> extraHeaders = null)
        {
            var context      = (request == null ? null : request.AuthenticationContext) ?? authenticationContext;
            var callSettings = apiSettings ?? PlayFabSettings.staticSettings;

            if (!context.IsEntityLoggedIn())
            {
                throw new PlayFabException(PlayFabExceptionCode.NotLoggedIn, "Must be logged in to call this method");
            }
            PlayFabHttp.MakeApiCall("/Experimentation/CreateExperiment", request, AuthType.EntityToken, resultCallback, errorCallback, customData, extraHeaders, context, callSettings, this);
        }
コード例 #2
0
 /// <summary>Snippet for CreateExperiment</summary>
 public void CreateExperimentRequestObject()
 {
     // Snippet: CreateExperiment(CreateExperimentRequest, CallSettings)
     // Create client
     ExperimentsClient experimentsClient = ExperimentsClient.Create();
     // Initialize request argument(s)
     CreateExperimentRequest request = new CreateExperimentRequest
     {
         ParentAsEnvironmentName = EnvironmentName.FromProjectLocationAgentEnvironment("[PROJECT]", "[LOCATION]", "[AGENT]", "[ENVIRONMENT]"),
         Experiment = new Experiment(),
     };
     // Make the request
     Experiment response = experimentsClient.CreateExperiment(request);
     // End snippet
 }
コード例 #3
0
        /// <summary>Snippet for CreateExperimentAsync</summary>
        public async Task CreateExperimentRequestObjectAsync()
        {
            // Snippet: CreateExperimentAsync(CreateExperimentRequest, CallSettings)
            // Additional: CreateExperimentAsync(CreateExperimentRequest, CancellationToken)
            // Create client
            ExperimentsClient experimentsClient = await ExperimentsClient.CreateAsync();

            // Initialize request argument(s)
            CreateExperimentRequest request = new CreateExperimentRequest
            {
                ParentAsEnvironmentName = EnvironmentName.FromProjectLocationAgentEnvironment("[PROJECT]", "[LOCATION]", "[AGENT]", "[ENVIRONMENT]"),
                Experiment = new Experiment(),
            };
            // Make the request
            Experiment response = await experimentsClient.CreateExperimentAsync(request);

            // End snippet
        }
コード例 #4
0
        /// <summary>
        /// Creates a new experiment for a title.
        /// </summary>
        public static async Task <PlayFabResult <CreateExperimentResult> > CreateExperimentAsync(CreateExperimentRequest request, object customData = null, Dictionary <string, string> extraHeaders = null)
        {
            await new PlayFabUtil.SynchronizationContextRemover();

            var requestContext  = request?.AuthenticationContext ?? PlayFabSettings.staticPlayer;
            var requestSettings = PlayFabSettings.staticSettings;

            if (requestContext.EntityToken == null)
            {
                throw new PlayFabException(PlayFabExceptionCode.EntityTokenNotSet, "Must call Client Login or GetEntityToken before calling this method");
            }


            var httpResult = await PlayFabHttp.DoPost("/Experimentation/CreateExperiment", request, "X-EntityToken", requestContext.EntityToken, extraHeaders);

            if (httpResult is PlayFabError)
            {
                var error = (PlayFabError)httpResult;
                PlayFabSettings.GlobalErrorHandler?.Invoke(error);
                return(new PlayFabResult <CreateExperimentResult> {
                    Error = error, CustomData = customData
                });
            }

            var resultRawJson = (string)httpResult;
            var resultData    = PluginManager.GetPlugin <ISerializerPlugin>(PluginContract.PlayFab_Serializer).DeserializeObject <PlayFabJsonSuccess <CreateExperimentResult> >(resultRawJson);
            var result        = resultData.data;

            return(new PlayFabResult <CreateExperimentResult> {
                Result = result, CustomData = customData
            });
        }