/// <summary> /// Adds one or more classes (separated by spaces) to the tag /// </summary> /// <param name="className">Valid CSS class name, JSON object, JSON array, or multiple valid CSS class names separated by spaces</param> /// <returns>The tag for method chaining</returns> /// <exception cref="System.ArgumentException">One or more CSS class names were invalid (contained invalid characters)</exception> protected internal virtual void AddClass(string className) { var classes = ParseClassName(className); foreach (var parsedClass in classes) { if (!CssClassNameValidator.IsValidClassName(parsedClass)) { throw new ArgumentException(string.Format("CSS class names is not valid. Problem class was '{0}'", new object[] { className }), nameof(className)); } _cssClasses.Add(parsedClass); } }
/// <summary> /// Adds one or more classes (separated by spaces) to the tag /// </summary> /// <param name="className">Valid CSS class name, JSON object, JSON array, or multiple valid CSS class names separated by spaces</param> /// <returns>The tag for method chaining</returns> /// <exception cref="System.ArgumentException">One or more CSS class names were invalid (contained invalid characters)</exception> public HtmlTag AddClass(string className) { IEnumerable <string> classes = parseClassName(className); foreach (string parsedClass in classes) { if (!CssClassNameValidator.IsValidClassName(parsedClass)) { throw new ArgumentException("CSS class names is not valid. Problem class was '{0}'".ToFormat(className), "className"); } _cssClasses.Add(parsedClass); } return(this); }
/// <summary> /// Parses a string which contains class name or multiple class names. /// </summary> /// <param name="className">A string which contains class(-es)</param> /// <returns>The list of classes</returns> private static IEnumerable <string> parseClassName(string className) { IEnumerable <string> classes; if (CssClassNameValidator.IsJsonClassName(className)) { classes = new List <string> { className }; } else { classes = Regex.Split(className, "[ ]+") .Where(c => !String.IsNullOrWhiteSpace(c)); } return(classes); }