/// <summary> /// method to minify the file /// </summary> /// <param name="results"></param> /// <param name="resultCss"></param> public void Minify(List <AnalysisResult> results, string resultCss) { try { string fileToProcess; if (InternalLinkCheck()) //Local file { if (_file[0].Equals('/')) { _file = _file.Replace('/', Path.DirectorySeparatorChar); _file = _file.Substring(1); //Remove first char } fileToProcess = Path.Combine(ProjectPath, _file); } else //Download { var webClient = new WebClient(); webClient.DownloadFile(_file, "temp"); fileToProcess = "temp"; } var fileInfo = new FileInfo(fileToProcess); Stadistics.TotalCssSize += fileInfo.Length; //Get size without minify var content = File.ReadAllText(fileToProcess); var minifier = new MsAjaxCssMinifier(); var minifyResult = minifier.Minify(content, false); //Save file File.AppendAllText(Path.Combine(ProjectPath, "css", resultCss), minifyResult.MinifiedContent); //Errors results.AddRange( minifyResult.Errors.Select( error => new AnalysisResult(_file.Replace("release", "src"), error.LineNumber, Strings.Name, error.Message, ErrorType.Instance))); results.AddRange( minifyResult.Warnings.Select( warning => new AnalysisResult(_file.Replace("release", "src"), warning.LineNumber, Strings.Name, warning.Message, WarningType.Instance))); } catch (Exception) { results.Add(new AnalysisResult(_file, 0, Strings.Name, Strings.FileProblem, ErrorType.Instance)); } }