public static Task <SteamUGCDetails[]> QueryAllUGCAsync(UGCQuery eQueryType, MatchingUGCType eMatchingeMatchingUGCTypeFileType, AppId creatorAppId, AppId consumerAppId, uint unPage)
{
var tcs = new TaskCompletionSource <SteamUGCDetails[]>();
var queryHandle = SteamUGC.CreateQueryAllUGCRequest(eQueryType, eMatchingeMatchingUGCTypeFileType, creatorAppId, consumerAppId, unPage);
var call = SteamUGC.SendQueryUGCRequest(queryHandle);
var callback = new CallResult <SteamUGCQueryCompleted>();
callback.Set(call, (a, b) =>
{
var results = new SteamUGCDetails[a.ResultsCount];
for (uint i = 0; i < a.ResultsCount; i++)
{
SteamUGCDetails details;
GetQueryUGCResult(queryHandle, i, out details);
results[i] = details;
}
tcs.SetResult(results);
});
return(tcs.Task);
}