39 lines
1.1 KiB
C#
39 lines
1.1 KiB
C#
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using AppLimit.CloudComputing.SharpBox.Common.Net.oAuth.Token;
|
|
|
|
namespace AppLimit.CloudComputing.SharpBox.Common.Net.oAuth.Impl
|
|
{
|
|
internal class OAuthStreamParser
|
|
{
|
|
public static OAuthToken ParseTokenInformation(Stream data)
|
|
{
|
|
var parameters = ParseParameterResult(data);
|
|
return new OAuthToken(parameters["oauth_token"], parameters["oauth_token_secret"]);
|
|
}
|
|
|
|
private static Dictionary<string, string> ParseParameterResult(Stream data)
|
|
{
|
|
var result = GetResultString(data);
|
|
|
|
if (result.Length > 0)
|
|
{
|
|
var parameters = result.Split('&');
|
|
|
|
return parameters.Select(paramSet => paramSet.Split('=')).ToDictionary(param2 => param2[0], param2 => param2[1]);
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
|
|
private static string GetResultString(Stream data)
|
|
{
|
|
using (var reader = new StreamReader(data))
|
|
{
|
|
return reader.ReadToEnd();
|
|
}
|
|
}
|
|
}
|
|
} |