string GetUrl(string email, int? size, string defaultImage, GravatarRating rating)
{
var url = new StringBuilder("http://www.gravatar.com/avatar/");
url.Append(GetHash(Email));
if(size == null) size = 80;
url.Append("?s=");
url.Append(size);
if(!String.IsNullOrEmpty(defaultImage)) {
url.Append("&d=");
url.Append(defaultImage);
}
else if(DefaultImageBehavior != GravatarDefaultImageBehavior.Default) {
var behaviorName = DefaultImageBehavior.ToString().ToLower();
switch(DefaultImageBehavior) {
case GravatarDefaultImageBehavior.MysteryMan:
behaviorName = "mm";
break;
}
url.Append("&d=" + behaviorName);
}
if(rating != GravatarRating.Default) {
url.Append("&r=");
url.Append(rating.ToString().ToLowerInvariant());
}
return url.ToString();
}