/// <summary> /// Returns a Globally Recognised Avatar as an <img /> - 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())); }
/// <summary> /// Returns a Globally Recognised Avatar as an <img /> - 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)); }
/// <summary> /// Returns a Globally Recognised Avatar as an <img /> - 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); }
/// <summary> /// Returns a Globally Recognised Avatar as an <img /> - 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 <img /> - 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 <img /> - 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)); }
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); }
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}")); }
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)); }
/// <summary> /// Returns a Globally Recognised Avatar as an <img /> - 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)); }