public async static Task<DirectMessage> SendDirectMessage(this IUserSession session, string screenName, string text)
{
var parameters = new TwitterParametersCollection();
parameters.Create(include_entities:true, screen_name:screenName, text:text.TrimAndTruncate(140));
if (parameters.EnsureAllArePresent(new [] {"screen_name", "text"}).IsFalse())
{
return session.MapParameterError<DirectMessage>(
"Either screen_name and text required");
}
return await session.PostAsync(TwitterApi.Resolve("/1.1/direct_messages/new.json"), parameters)
.ContinueWith(c => c.MapToSingle<DirectMessage>());
}