public static async Task<User> ChangeAccountProfile(this IUserSession session, string name = "",
string profileUrl = "", string location = "", string description = "")
{
var parameters = new TwitterParametersCollection();
parameters.Create(include_entities: true,skip_status:true);
// first 20 chars
if (!string.IsNullOrWhiteSpace(name))
{
parameters.Add("name", name.TrimAndTruncate(20));
}
// first 100 chars
if (!string.IsNullOrWhiteSpace(profileUrl))
{
parameters.Add("purl", profileUrl.TrimAndTruncate(100));
}
// first 30 chars
if (!string.IsNullOrWhiteSpace(location))
{
parameters.Add("location", location.TrimAndTruncate(30));
}
// first 160 chars
if (!string.IsNullOrWhiteSpace(description))
{
parameters.Add("description", description.TrimAndTruncate(160));
}
return await session.PostAsync(TwitterApi.Resolve("/1.1/account/update_profile.json"), parameters)
.ContinueWith(c => c.MapToSingle<User>());
}