/// <summary>
/// Completes an asynchronous call to invoke an API method.
/// </summary>
/// <param name="asyncResult">The async result from the corresponding BeginCreateAccessToken call.</param>
/// <returns>The resulting response.</returns>
public HyvesResponse EndInvokeMethod(IAsyncResult asyncResult)
{
if (asyncRequest == null)
{
throw new InvalidOperationException("No method is currently being invoked using this request.");
}
HyvesResponse response = null;
try
{
HttpWebResponse webResponse = (HttpWebResponse)asyncRequest.EndGetResponse(asyncResult);
if (webResponse.StatusCode != HttpStatusCode.OK)
{
response = new HyvesResponse(webResponse.StatusCode, asyncMethod);
}
else
{
Stream responseStream = webResponse.GetResponseStream();
response = new HyvesResponse(responseStream, asyncMethod);
}
}
finally
{
asyncRequest = null;
asyncMethod = HyvesMethod.Unknown;
}
session.LogResponse(response);
return(response);
}