Exemple #1
0
        /// <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);
            }
        }
Exemple #2
0
        /// <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);
        }
Exemple #3
0
        /// <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);
        }