public string GenerateAuthorizationUrl(IEnumerable<OAuthScope> scopes)
{
string[] scopesAsStrings = scopes.Select<OAuthScope, string>(scope => scopeNameMap[scope]).ToArray();
string scopeString = String.Join(",", scopesAsStrings);
return
"{0}/authorize?response_type=code".FormatWith(HostName) +
"&client_id={0}".FormatWith(ClientID) +
"&redirect_uri={0}".FormatWith(RedirectUri) +
"&scope={0}".FormatWith(scopeString);
}