/// <summary> /// Make the URL for the Gravatar image of a given email adress. /// </summary> /// <param name="email"></param> /// <param name="extension">Adds .jpg extension to URL.</param> /// <param name="size">Size, in pixels, of the retrieved image.</param> /// <param name="ssl">Use a secure connection to retrieve image.</param> /// <param name="rating">Rating to limit retrieval at. Gravatars above set limit are returned as "default" Gravatar.</param> /// <param name="defaultOption">Decides what is returned if no Gravatar exists for given email.</param> /// <param name="defaultUrl">URL to custom default image, if set.</param> /// <returns>URL for requesting specified Gravatar image.</returns> public static Uri GetGravatarUrl( string email, bool extension = false, int size = 80, bool ssl = false, GravatarRating rating = GravatarRating.PG, GravatarDefault defaultOption = GravatarDefault.Default, string defaultUrl = "" ) { var sb = new StringBuilder(); sb.Append(ssl ? UrlBaseSsl : UrlBase); sb.Append(Utility.GravatarHash(email)); sb.Append(extension ? ".jpg" : string.Empty); sb.Append(CalculateSizeOption(size)); sb.Append(CalculateRatingOption(rating)); sb.Append(CalculateDefaultOption(defaultOption, defaultUrl)); return new Uri(sb.ToString()); }
public static string Gravatar(this UrlHelper helper, string email, int size = 32, GravatarDefault def = GravatarDefault.Default, GravatarRating rating = GravatarRating.G) { return GravatarUrl.ForEmail(email).Size(size).Default(def).WithRating(rating); }
/// <summary> /// Determine what default-image option to add to the URL. /// </summary> /// <param name="option">Chosen option.</param> /// <param name="customDefaultAdress">Given custom adress</param> /// <returns>Either nothing, or ?d=X , where X is the given option.</returns> private static string CalculateDefaultOption(GravatarDefault option, string customDefaultAdress) { if (option == GravatarDefault.Default) { // No option to add. return string.Empty; } if (option == GravatarDefault.Custom) { if (customDefaultAdress == string.Empty) { throw new ArgumentException("When custom default is chosen, you need to supply an adress!"); } return string.Format("?d={0}", System.Web.HttpUtility.UrlEncode(customDefaultAdress)); } return string.Format("?d={0}", option); }
public static Uri GetGravatarUrl(string email, GravatarDefault def, string defaultUrl) { return GetGravatarUrl(email, false, 80, false, GravatarRating.PG, def, defaultUrl); }