Esempio n. 1
0
        /// <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);
 }
Esempio n. 3
0
        /// <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);
        }
Esempio n. 4
0
 public static Uri GetGravatarUrl(string email, GravatarDefault def, string defaultUrl)
 {
     return GetGravatarUrl(email, false, 80, false, GravatarRating.PG, def, defaultUrl);
 }