public static MvcHtmlString UmaButton(this HtmlHelper htmlHelper, string id, string label, UmaButtonType buttonType, FontAwesomeIcon fontAwesomeIcon, object htmlAttributes)
        {
            if (string.IsNullOrEmpty(id))
            {
                throw new ArgumentNullException(id);
            }

            if (htmlHelper == null)
            {
                throw new ArgumentNullException("htmlHelper");
            }

            TagBuilder button = new TagBuilder("button");

            button.GenerateId(id);
            button.Attributes.Add("name", id);

            string localizedLabel = label;
            // TO DO: Andrejs
            // GetTranslation(label, htmlHelper.ViewBag.FeatureName);

            if (fontAwesomeIcon != null && fontAwesomeIcon.Justification == IconJustification.Right)
            {
                button.InnerHtml = string.Concat(localizedLabel, " ", fontAwesomeIcon.Html);
            }
            else
            {
                button.InnerHtml = string.Concat(fontAwesomeIcon == null ? string.Empty : fontAwesomeIcon.Html + " ", localizedLabel);
            }

            button.AddCssClass(GetButtonCssClass(buttonType));
            button.AddCssClass("btn");
            button.Attributes.Add("type",
                buttonType == UmaButtonType.FormSubmit ? "submit" : "button");
            AddAdditionalAttributes(htmlAttributes, button);
            return MvcHtmlString.Create(button.ToString(TagRenderMode.Normal));
        }
 /// <summary>
 /// Creates the HTML markup for button in UI with necessary specified styling classes and icon
 /// </summary>
 /// <param name="htmlHelper">The HTML helper.</param>
 /// <param name="id">The identifier of a button. Also becomes a name</param>
 /// <param name="label">The label to display on button. It is automatically localized in current UI Culture</param>
 /// <param name="buttonType">Semantic type of the button.</param>
 /// <param name="fontAwesomeIconName">Specify font awesome icon full name (like "fa-check-square-o"). Refer to http://fontawesome.io/icons/ for names.</param>
 public static MvcHtmlString UmaButton(this HtmlHelper htmlHelper, string id, string label, UmaButtonType buttonType, string fontAwesomeIconName)
 {
     FontAwesomeIcon iconDef = new FontAwesomeIcon(fontAwesomeIconName) { Size = IconSize.Larger };
     return UmaButton(htmlHelper, id, label, buttonType, iconDef, null);
 }
 /// <summary>
 /// Creates the HTML markup for button in UI with necessary specified styling classes
 /// </summary>
 /// <param name="htmlHelper">The HTML helper.</param>
 /// <param name="id">The identifier of a button. Also becomes a name</param>
 /// <param name="label">The label to display on button. It is automatically localized in current UI Culture</param>
 /// <param name="buttonType">Semantic type of the button.</param>
 /// <param name="htmlAttributes">The HTML attributes you might want to add to element.</param>
 public static MvcHtmlString UmaButton(this HtmlHelper htmlHelper, string id, string label, UmaButtonType buttonType, object htmlAttributes = null)
 {
     return UmaButton(htmlHelper, id, label, buttonType, null, htmlAttributes);
 }
        /// <summary>
        /// Common method around HTML helper classes that return button css class name
        /// </summary>
        /// <param name="buttonType">UmaButtonType enum value</param>
        /// <returns>Returns css class name</returns>
        private static string GetButtonCssClass(UmaButtonType buttonType)
        {
            string returnValue = string.Empty;

            switch (buttonType)
            {
                case UmaButtonType.Back:
                case UmaButtonType.Operation:
                case UmaButtonType.Redirect:
                case UmaButtonType.ViewOperation:
                    returnValue = "btn-info";
                    break;
                case UmaButtonType.DeleteOperation:
                    returnValue = "btn-danger";
                    break;
                case UmaButtonType.CreateOperation:
                case UmaButtonType.EditOperation:
                    returnValue = "btn-success";
                    break;
                case UmaButtonType.FormSubmit:
                    returnValue = "btn-primary";
                    break;
                default:
                    returnValue = "btn-default";
                    break;
            }
            return returnValue;
        }
 public static MvcHtmlString UmaButtonLink(this HtmlHelper htmlHelper, string label, string redirectUri, UmaButtonType type, object htmlAttributes)
 {
     return UmaButtonLink(htmlHelper, label, redirectUri, null, htmlAttributes, type);
 }
        public static MvcHtmlString UmaButtonLink(this HtmlHelper htmlHelper, string label, string redirectUri, FontAwesomeIcon fontAwesomeIcon, object htmlAttributes, UmaButtonType type = UmaButtonType.ViewOperation)
        {
            if (string.IsNullOrEmpty(redirectUri))
            {
                throw new ArgumentNullException("redirectUri");
            }

            if (htmlHelper == null)
            {
                throw new ArgumentNullException("htmlHelper");
            }

            TagBuilder link = new TagBuilder("a");
            link.Attributes.Add("href", redirectUri);
            // TODO :  Andrejs
            string localizedLabel = label;
            // GetTranslation(label, htmlHelper.ViewBag.FeatureName);

            if (fontAwesomeIcon != null && fontAwesomeIcon.Justification == IconJustification.Right)
            {
                link.InnerHtml = string.Concat(localizedLabel, " ", fontAwesomeIcon.Html);
            }
            else
            {
                link.InnerHtml = string.Concat(fontAwesomeIcon == null ? string.Empty : fontAwesomeIcon.Html + " ", localizedLabel);
            }

            link.AddCssClass(GetButtonCssClass(type));
            link.AddCssClass("btn");
            AddAdditionalAttributes(htmlAttributes, link);
            return MvcHtmlString.Create(link.ToString(TagRenderMode.Normal));
        }