public static async Task<User> GetUserProfile(this ITwitterSession session, string screenName="", long userId=0)
{
var parameters = new TwitterParametersCollection();
parameters.Create(screen_name:screenName,include_entities:true,user_id:userId);
if (parameters.EnsureEitherOr("screen_name", "user_id").IsFalse())
{
return session.MapParameterError<User>(
"Either screen_name or user_id required");
}
return await session.GetAsync(TwitterApi.Resolve("/1.1/users/show.json"), parameters)
.ContinueWith(c => c.MapToSingle<User>());
}