I'm trying to make a Cloudscript as Azure Function on vscode, on my Mac. The problem is that I can't find anything close to what I want to do. I have one Player with a specific PlayerData in TitleA and I want to transfer that data to TitleB, but I don't know how I can do this, so I'm coding and trying, but getting a bunch of errors, please help me with code. My code for now is like this:
using System;
using System.IO;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using PlayFab;
using PlayFab.AllModels;
public static class TransferPlayerData
{
[FunctionName("TransferPlayerData")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
TransferPlayerDataRequest data = JsonConvert.DeserializeObject<TransferPlayerDataRequest>(requestBody);
var sourceTitleData = await PlayFabAllSDK.AdminAPI.GetUserDataAsync(new GetUserDataRequest
{
PlayFabId = data.SourcePlayerId,
Keys = null
});
var destTitleData = await PlayFabAllSDK.AdminAPI.GetUserDataAsync(new GetUserDataRequest
{
PlayFabId = data.DestinationPlayerId,
Keys = null
});
var titleDataToTransfer = sourceTitleData.Data;
foreach (var key in titleDataToTransfer.Keys)
{
await PlayFabAllSDK.AdminAPI.UpdateUserDataAsync(new UpdateUserDataRequest
{
PlayFabId = data.DestinationPlayerId,
Data = titleDataToTransfer,
Permission = UserDataPermission.Public
});
}
return new OkObjectResult("Player data transferred successfully.");
}
private class TransferPlayerDataRequest
{
public string SourcePlayerId;
public string DestinationPlayerId;
}
}