示例#1
0
        /// <summary>
        /// Returns a Globally Recognised Avatar as an &lt;img /&gt; - http://gravatar.com
        /// </summary>
        /// <param name="emailAddress">Email Address for the Gravatar</param>
        /// <param name="defaultImage">Default image if user hasn't created a Gravatar</param>
        /// <param name="size">Size in pixels (default: 80)</param>
        /// <param name="defaultImageUrl">URL to a custom default image (e.g: 'Url.Content("~/images/no-grvatar.png")' )</param>
        /// <param name="forceDefaultImage">Prefer the default image over the users own Gravatar</param>
        /// <param name="rating">Gravatar content rating (note that Gravatars are self-rated)</param>
        /// <param name="forceSecureRequest">Always do secure (https) requests</param>
        public static HtmlString GravatarImage(
            this HtmlHelper htmlHelper,
            string emailAddress,
            int size = 80,
            DefaultImage defaultImage = DefaultImage.Default,
            string defaultImageUrl    = "",
            bool forceDefaultImage    = false,
            Rating rating             = Rating.G,
            bool forceSecureRequest   = false)
        {
            var imgTag = new TagBuilder("img");

            emailAddress = string.IsNullOrEmpty(emailAddress) ? string.Empty : emailAddress.Trim().ToLower();

            imgTag.Attributes.Add("src",
                                  string.Format("https://secure.gravatar.com/avatar/{0}?s={1}{2}{3}{4}",
                                                GetMd5Hash(emailAddress),
                                                size.ToString(),
                                                "&d=" +
                                                (!string.IsNullOrEmpty(defaultImageUrl)
                                                                     ? HttpUtility.UrlEncode(defaultImageUrl)
                                                                     : defaultImage.GetDescription()),
                                                forceDefaultImage ? "&f=y" : "",
                                                "&r=" + rating.GetDescription()
                                                )
                                  );

            imgTag.Attributes.Add("class", "gravatar");
            imgTag.Attributes.Add("alt", "Gravatar image");
            return(new HtmlString(imgTag.ToString()));
        }
示例#2
0
        /// <summary>
        ///     Returns a Globally Recognised Avatar as an &lt;img /&gt; - http://gravatar.com
        /// </summary>
        /// <param name="htmlHelper">The HTML Helper object</param>
        /// <param name="emailAddress">Email Address for the Gravatar</param>
        /// <param name="defaultImage">Default image if user hasn't created a Gravatar</param>
        /// <param name="size">Size in pixels (default: 80)</param>
        /// <param name="defaultImageUrl">URL to a custom default image (e.g: 'Url.Content("~/images/no-grvatar.png")' )</param>
        /// <param name="forceDefaultImage">Prefer the default image over the users own Gravatar</param>
        /// <param name="rating">Gravatar content rating (note that Gravatars are self-rated)</param>
        /// <param name="forceSecureRequest">Always do secure (https) requests</param>
        public static HtmlString GravatarImage(
            this HtmlHelper htmlHelper,
            string emailAddress,
            int size = 80,
            DefaultImage defaultImage = DefaultImage.Default,
            string defaultImageUrl    = "",
            bool forceDefaultImage    = false,
            Rating rating             = Rating.G,
            bool forceSecureRequest   = false)
        {
            var imgTag = new TagBuilder("img");

            emailAddress = string.IsNullOrEmpty(emailAddress) ? string.Empty : emailAddress.Trim().ToLower();

            imgTag.Attributes.Add("src",
                                  string.Format("{0}://{1}.gravatar.com/avatar/{2}?s={3}{4}{5}{6}",
                                                htmlHelper.ViewContext.HttpContext.Request.IsSecureConnection || forceSecureRequest ? "https" : "http",
                                                htmlHelper.ViewContext.HttpContext.Request.IsSecureConnection || forceSecureRequest ? "secure" : "www",
                                                GetMd5Hash(emailAddress),
                                                size,
                                                "&d=" +
                                                (!string.IsNullOrEmpty(defaultImageUrl)
                        ? HttpUtility.UrlEncode(defaultImageUrl)
                        : defaultImage.GetDescription()),
                                                forceDefaultImage ? "&f=y" : "",
                                                "&r=" + rating.GetDescription()
                                                )
                                  );

            imgTag.Attributes.Add("class", "img img-responsive img-circle gravatar");
            imgTag.Attributes.Add("alt", "Change your profile image at http://gravatar.com");
            return(new HtmlString(imgTag.ToString(TagRenderMode.SelfClosing)));
        }
 public static HtmlString GravatarImage(this HtmlHelper htmlHelper, string emailAddress, int size = 80, DefaultImage defaultImage = DefaultImage.MysteryMan, string defaultImageUrl = "", bool forceDefaultImage = false, Rating rating = 0, bool forceSecureRequest = false)
 {
     TagBuilder builder = new TagBuilder("img");
     emailAddress = string.IsNullOrEmpty(emailAddress) ? string.Empty : emailAddress.Trim().ToLower();
     builder.Attributes.Add("src", string.Format("{0}://{1}.gravatar.com/avatar/{2}?s={3}{4}{5}{6}", new object[] { (htmlHelper.ViewContext.HttpContext.Request.IsSecureConnection || forceSecureRequest) ? "https" : "http", (htmlHelper.ViewContext.HttpContext.Request.IsSecureConnection || forceSecureRequest) ? "secure" : "www", GetMd5Hash(emailAddress), size.ToString(), "&d=" + (!string.IsNullOrEmpty(defaultImageUrl) ? HttpUtility.UrlEncode(defaultImageUrl) : defaultImage.GetDescription()), forceDefaultImage ? "&f=y" : "", "&r=" + rating.GetDescription() }));
     builder.Attributes.Add("class", "gravatar");
     builder.Attributes.Add("alt", "Gravatar image");
     return new HtmlString(builder.ToString(TagRenderMode.SelfClosing));
 }
示例#4
0
        /// <summary>
        /// Returns a Globally Recognised Avatar as an &lt;img /&gt; - http://gravatar.com
        /// </summary>
        /// <param name="htmlHelper"></param>
        /// <param name="emailAddress">Email Address for the Gravatar</param>
        /// <param name="defaultImage">Default image if user hasn't created a Gravatar</param>
        /// <param name="size">Size in pixels (default: 80)</param>
        /// <param name="defaultImageUrl">URL to a custom default image (e.g: 'Url.Content("~/images/no-grvatar.png")' )</param>
        /// <param name="forceDefaultImage">Prefer the default image over the users own Gravatar</param>
        /// <param name="rating">Gravatar content rating (note that Gravatars are self-rated)</param>
        /// <param name="forceSecureRequest">Always do secure (https) requests</param>
        /// <param name="cssClass"></param>
        /// <param name="alt"></param>
        public static IHtmlContent GravatarImage(
            this IHtmlHelper htmlHelper,
            string emailAddress,
            int size = 80,
            DefaultImage defaultImage = DefaultImage.Default,
            string defaultImageUrl    = "",
            bool forceDefaultImage    = false,
            Rating rating             = Rating.G,
            bool forceSecureRequest   = false,
            string cssClass           = "gravatar",
            string alt = "Gravatar image")
        {
            var imgTag = new TagBuilder("img");

            emailAddress = string.IsNullOrEmpty(emailAddress) ? string.Empty : emailAddress.Trim().ToLower();

            imgTag.Attributes.Add("src",
                                  string.Format("{0}://{1}.gravatar.com/avatar/{2}?s={3}{4}{5}{6}",
                                                htmlHelper.ViewContext.HttpContext.Request.IsHttps || forceSecureRequest ? "https" : "http",
                                                htmlHelper.ViewContext.HttpContext.Request.IsHttps || forceSecureRequest ? "secure" : "www",
                                                GetMd5Hash(emailAddress),
                                                size.ToString(),
                                                "&d=" + (!string.IsNullOrEmpty(defaultImageUrl) ? htmlHelper.UrlEncoder.Encode(defaultImageUrl) : defaultImage.GetDescription()),
                                                forceDefaultImage ? "&f=y" : "",
                                                "&r=" + rating.GetDescription()
                                                )
                                  );

            imgTag.Attributes.Add("class", cssClass);
            imgTag.Attributes.Add("alt", alt);
            imgTag.TagRenderMode = TagRenderMode.SelfClosing;

            return(imgTag);
        }
示例#5
0
    /// <summary>
    /// Returns a Globally Recognised Avatar as an &lt;img /&gt; - http://gravatar.com
    /// </summary>
    private static HtmlString GravatarImage(this HtmlHelper htmlHelper, string emailAddress, int size, DefaultImage defaultImage, string defaultImageUrl, bool forceDefaultImage, Rating rating, bool forceSecureRequest)
    {
        var imgTag = new TagBuilder("img");

        emailAddress = String.IsNullOrEmpty(emailAddress) ? String.Empty : emailAddress.Trim().ToLower();

        imgTag.Attributes.Add("src",
                              string.Format("{0}://{1}.gravatar.com/avatar/{2}?s={3}{4}{5}{6}",
                                            htmlHelper.ViewContext.HttpContext.Request.IsSecureConnection || forceSecureRequest ? "https" : "http",
                                            htmlHelper.ViewContext.HttpContext.Request.IsSecureConnection || forceSecureRequest ? "secure" : "www",
                                            GetMd5Hash(emailAddress),
                                            size.ToString(),
                                            "&d=" + (!string.IsNullOrEmpty(defaultImageUrl) ? HttpUtility.UrlEncode(defaultImageUrl) : defaultImage.GetDescription()),
                                            forceDefaultImage ? "&f=y" : "",
                                            "&r=" + rating.GetDescription()
                                            )
                              );

        imgTag.Attributes.Add("class", "gravatar");
        imgTag.Attributes.Add("alt", "Gravatar image");
        return(new HtmlString(imgTag.ToString(TagRenderMode.SelfClosing)));
    }
    /// <summary>
    /// Returns a Globally Recognised Avatar as an &lt;img /&gt; - http://gravatar.com
    /// </summary>
    /// <param name="emailAddress">Email Address for the Gravatar</param>
    /// <param name="defaultImage">Default image if user hasn't created a Gravatar</param>
    /// <param name="size">Size in pixels (default: 80)</param>
    /// <param name="defaultImageUrl">URL to a custom default image (e.g: 'Url.Content("~/images/no-grvatar.png")' )</param>
    /// <param name="forceDefaultImage">Prefer the default image over the users own Gravatar</param>
    /// <param name="rating">Gravatar content rating (note that Gravatars are self-rated)</param>
    /// <param name="forceSecureRequest">Always do secure (https) requests</param>
    public static IHtmlContent GravatarImage(
        this IHtmlHelper htmlHelper,
        string emailAddress,
        int size = 80,
        DefaultImage defaultImage = DefaultImage.Default,
        string defaultImageUrl = "",
        bool forceDefaultImage = false,
        Rating rating = Rating.G,
        bool forceSecureRequest = false)
    {
        var imgTag = new TagBuilder("img");

        emailAddress = string.IsNullOrEmpty(emailAddress) ? string.Empty : emailAddress.Trim().ToLower();

        imgTag.Attributes.Add("src",
            string.Format("{0}://{1}.gravatar.com/avatar/{2}?s={3}{4}{5}{6}",
                htmlHelper.ViewContext.HttpContext.Request.IsHttps || forceSecureRequest ? "https" : "http",
                htmlHelper.ViewContext.HttpContext.Request.IsHttps || forceSecureRequest ? "secure" : "www",
                GetMd5Hash(emailAddress),
                size.ToString(),
                "&d=" + (!string.IsNullOrEmpty(defaultImageUrl) ? htmlHelper.UrlEncoder.Encode(defaultImageUrl) : defaultImage.GetDescription()),
                forceDefaultImage ? "&f=y" : "",
                "&r=" + rating.GetDescription()
                )
            );

        imgTag.Attributes.Add("class", "gravatar");
        imgTag.Attributes.Add("alt", "Gravatar image");
        imgTag.TagRenderMode = TagRenderMode.SelfClosing;

        return imgTag;
    }
    /// <summary>
    /// Returns a Globally Recognised Avatar as an &lt;img /&gt; - http://gravatar.com
    /// </summary>
    private static HtmlString GravatarImage(this HtmlHelper htmlHelper, string emailAddress, int size, DefaultImage defaultImage, string defaultImageUrl, bool forceDefaultImage, Rating rating, bool forceSecureRequest) {
        var imgTag = new TagBuilder("img");

        emailAddress = String.IsNullOrEmpty(emailAddress) ? String.Empty : emailAddress.Trim().ToLower();

        imgTag.Attributes.Add("src",
            string.Format("{0}://{1}.gravatar.com/avatar/{2}?s={3}{4}{5}{6}",
                htmlHelper.ViewContext.HttpContext.Request.IsSecureConnection || forceSecureRequest ? "https" : "http",
                htmlHelper.ViewContext.HttpContext.Request.IsSecureConnection || forceSecureRequest ? "secure" : "www",
                GetMd5Hash(emailAddress),
                size.ToString(),
                "&d=" + (!string.IsNullOrEmpty(defaultImageUrl) ? HttpUtility.UrlEncode(defaultImageUrl) : defaultImage.GetDescription()),
                forceDefaultImage ? "&f=y" : "",
                "&r=" + rating.GetDescription()
                )
            );

        imgTag.Attributes.Add("class", "gravatar");
        imgTag.Attributes.Add("alt", "Gravatar image");
        return new HtmlString(imgTag.ToString(TagRenderMode.SelfClosing));
    }
示例#8
0
        public override void Process(TagHelperContext context, TagHelperOutput output)
        {
            output.TagName = "img";
            var email = string.IsNullOrWhiteSpace(EmailAddress) ? string.Empty : EmailAddress.ToLower();

            output.Attributes.Add("src",
                                  string.Format("{0}://{1}.gravatar.com/avatar/{2}?s={3}{4}{5}{6}",
                                                "https",
                                                "s",
                                                GravatarUtilities.GetMd5Hash(email),
                                                ImageSize,
                                                "&d=" + (!string.IsNullOrEmpty(DefaultImageUrl) ? HtmlEncoder.Default.Encode(DefaultImageUrl) : DefaultImage.GetDescription()),
                                                ForceDefaultImage ? "&f=y" : "",
                                                "&r=" + Rating.GetDescription()
                                                )
                                  );
            if (!string.IsNullOrWhiteSpace(AdditionalCssClasses))
            {
                if (output.Attributes.Any(x => x.Name.ToLower() == "class"))
                {
                    AdditionalCssClasses = output.Attributes.First(x => x.Name.ToLower() == "class").Value + " " + AdditionalCssClasses;
                    output.Attributes.Remove(output.Attributes.First(x => x.Name.ToLower() == "class"));
                }

                // Add the additional CSS classes
                output.Attributes.Add("class", AdditionalCssClasses);
            }
            base.Process(context, output);
        }
示例#9
0
        public static Uri GetUri(string emailAddress, int size = 80, DefaultImage defaultImage = DefaultImage.Default,
                                 string defaultImageUrl        = "", Rating rating = Rating.PG)
        {
            emailAddress    = string.IsNullOrEmpty(emailAddress) ? string.Empty : emailAddress.Trim().ToLower();
            defaultImageUrl = (!string.IsNullOrEmpty(defaultImageUrl) ? WebUtility.UrlEncode(defaultImageUrl) : defaultImage.GetDescription());

            return(new Uri($"https://secure.gravatar.com/avatar/{GetMd5Hash(emailAddress)}?s={size}&r={rating.GetDescription()}&d={defaultImageUrl}"));
        }
示例#10
0
    public static HtmlString GravatarImageProfile(
      this HtmlHelper htmlHelper,
      string emailAddress,
      int size = 80,
      DefaultImage defaultImage = DefaultImage.Default,
      string defaultImageUrl = "",
      bool forceDefaultImage = false,
      Rating rating = Rating.G,
      bool forceSecureRequest = false)
    {
        var imgTag = new TagBuilder("img");

        emailAddress = string.IsNullOrEmpty(emailAddress) ? string.Empty : emailAddress.Trim().ToLower();

        imgTag.Attributes.Add("src",
            string.Format("{0}://{1}.gravatar.com/avatar/{2}?s={3}{4}{5}{6}",
                htmlHelper.ViewContext.HttpContext.Request.IsSecureConnection || forceSecureRequest ? "https" : "http",
                htmlHelper.ViewContext.HttpContext.Request.IsSecureConnection || forceSecureRequest ? "secure" : "www",
                GetMd5Hash(emailAddress),
                size.ToString(),
                "&d=" + (!string.IsNullOrEmpty(defaultImageUrl) ? HttpUtility.UrlEncode(defaultImageUrl) : defaultImage.GetDescription()),
                forceDefaultImage ? "&f=y" : "",
                "&r=" + rating.GetDescription()
                )
            );

        imgTag.Attributes.Add("class", "profile-user-img img-responsive img-circle");
        imgTag.Attributes.Add("alt", "User profile picture");
        return new HtmlString(imgTag.ToString(TagRenderMode.SelfClosing));
    }
示例#11
0
    /// <summary>
    /// Returns a Globally Recognised Avatar as an &lt;img /&gt; - http://gravatar.com
    /// </summary>
    /// <param name="emailAddress">Email Address for the Gravatar</param>
    /// <param name="defaultImage">Default image if user hasn't created a Gravatar</param>
    /// <param name="size">Size in pixels (default: 80)</param>
    /// <param name="defaultImageUrl">URL to a custom default image (e.g: 'Url.Content("~/images/no-grvatar.png")' )</param>
    /// <param name="forceDefaultImage">Prefer the default image over the users own Gravatar</param>
    /// <param name="rating">Gravatar content rating (note that Gravatars are self-rated)</param>
    /// <param name="forceSecureRequest">Always do secure (https) requests</param>
    public static HtmlString GravatarImage(
      this HtmlHelper htmlHelper,
      string emailAddress,
      IDictionary<string, string> htmlAttributes = null,
      int size = 80,
      DefaultImage defaultImage = DefaultImage.Default,
      string defaultImageUrl = "",
      bool forceDefaultImage = false,
      Rating rating = Rating.G,
      bool forceSecureRequest = false)
    {
        var imgTag = new TagBuilder("img");

        emailAddress = string.IsNullOrEmpty(emailAddress) ? string.Empty : emailAddress.Trim().ToLower();
        if (HttpContext.Current.Request.Url.Host.ToLower().Equals("localhost"))
        {
            imgTag.Attributes.Add("src", (htmlHelper.ViewContext.HttpContext.Request.IsSecureConnection || forceSecureRequest ? "https://" : "http://") + defaultImageUrl);
            imgTag.Attributes.Add("width", size.ToString());
            imgTag.Attributes.Add("height", size.ToString());
        }
        else
        {
            imgTag.Attributes.Add("src",
                string.Format("{0}://{1}.gravatar.com/avatar/{2}?s={3}{4}{5}{6}",
                    htmlHelper.ViewContext.HttpContext.Request.IsSecureConnection || forceSecureRequest ? "https" : "http",
                    htmlHelper.ViewContext.HttpContext.Request.IsSecureConnection || forceSecureRequest ? "secure" : "www",
                    GetMd5Hash(emailAddress),
                    size.ToString(),
                    "&d=" + (!string.IsNullOrEmpty(defaultImageUrl) ? HttpUtility.UrlEncode(defaultImageUrl) : defaultImage.GetDescription()),
                    forceDefaultImage ? "&f=y" : "",
                    "&r=" + rating.GetDescription()
                    )
                );
        }
        imgTag.Attributes.Add("alt", "Gravatar image");
        if (htmlAttributes != null)
        {
            foreach (var attr in htmlAttributes)
            {
                if (imgTag.Attributes.Keys.Contains(attr.Key))
                    imgTag.Attributes[attr.Key] = attr.Value;
                else
                   imgTag.Attributes.Add(attr.Key, attr.Value);
            }
        }
        return new HtmlString(imgTag.ToString(TagRenderMode.SelfClosing));
    }