예제 #1
0
        /// <summary>
        /// Produces code minifiction of CSS content by using
        /// Microsoft Ajax CSS Minifier
        /// </summary>
        /// <param name="content">CSS content</param>
        /// <param name="isInlineCode">Flag whether the content is inline code</param>
        /// <param name="encoding">Text encoding</param>
        /// <returns>Minification result</returns>
        public CodeMinificationResult Minify(string content, bool isInlineCode, Encoding encoding)
        {
            if (string.IsNullOrWhiteSpace(content))
            {
                return(new CodeMinificationResult(string.Empty));
            }

            string newContent;
            var    errorReporter = new MsAjaxCssErrorReporter();

            var cssParser = new CssParser
            {
                Settings = isInlineCode ? GetInlineCssParserSettings() : GetEmbeddedCssParserSettings()
            };

            cssParser.CssError += errorReporter.CssMinificationErrorHandler;

            try
            {
                newContent = cssParser.Parse(content);
            }
            finally
            {
                cssParser.CssError -= errorReporter.CssMinificationErrorHandler;
            }

            return(new CodeMinificationResult(newContent, errorReporter.Errors, errorReporter.Warnings));
        }
        /// <summary>
        /// Produces code minifiction of CSS content by using
        /// Microsoft Ajax CSS Minifier
        /// </summary>
        /// <param name="content">CSS content</param>
        /// <param name="isInlineCode">Flag whether the content is inline code</param>
        /// <param name="encoding">Text encoding</param>
        /// <returns>Minification result</returns>
        public CodeMinificationResult Minify(string content, bool isInlineCode, Encoding encoding)
        {
            if (string.IsNullOrWhiteSpace(content))
            {
                return new CodeMinificationResult(string.Empty);
            }

            string newContent;
            var errorReporter = new MsAjaxCssErrorReporter();

            var cssParser = new CssParser
            {
                Settings = isInlineCode ? GetInlineCssParserSettings() : GetEmbeddedCssParserSettings()
            };
            cssParser.CssError += errorReporter.CssMinificationErrorHandler;

            try
            {
                newContent = cssParser.Parse(content);
            }
            finally
            {
                cssParser.CssError -= errorReporter.CssMinificationErrorHandler;
            }

            return new CodeMinificationResult(newContent, errorReporter.Errors, errorReporter.Warnings);
        }