/// <summary>
/// Gets the application access token asynchronously.
/// </summary>
/// <param name="facebookOAuthClient">The Facebook OAuth Client.</param>
/// <param name="parameters">The parameters.</param>
/// <returns>The task of the result.</returns>
public static Task <object> GetApplicationAccessTokenTaskAsync(this FacebookOAuthClient facebookOAuthClient, IDictionary <string, object> parameters)
{
var tcs = FacebookClientTaskExtensions.CreateSource <object>(null);
EventHandler <FacebookApiEventArgs> handler = null;
handler = (sender, e) => FacebookClientTaskExtensions.TransferCompletionToTask <object>(tcs, e, () => e.GetResultData(), () => facebookOAuthClient.GetApplicationAccessTokenCompleted -= handler);
facebookOAuthClient.GetApplicationAccessTokenCompleted += handler;
try
{
facebookOAuthClient.GetApplicationAccessTokenAsync(parameters, tcs);
}
catch
{
facebookOAuthClient.GetApplicationAccessTokenCompleted -= handler;
tcs.TrySetCanceled();
throw;
}
return(tcs.Task);
}