private static SeperatedCssViewModel Run(string[] testData) { var obj = new PageCssSeperationEvaluator(new CssBlockContentEvaluator(), new CssFileNameEvaluator(new SolutionRelativeDirectoryEvaluator())); return(obj.Evaluate(testData, @"C:\dir1\dir2\dir3", @"C:\dir1\dir2\dir3\Content\BlockCss\Search", @"LoggingResultGrid.cshtml", true)); }
public void Split(bool mergeBlocks) { if (MessageBox.Show("Are you sure?", "Refactor CSS", MessageBoxButton.YesNo, MessageBoxImage.Warning) != MessageBoxResult.Yes) { return; } var refactorTarget = Properties.Settings.Default.RefactorPath; var newPath = GetNewPath(); if (!Proceed(refactorTarget)) { return; } var filesToRefactor = Directory.GetFiles(refactorTarget).Where(x => x.EndsWith(".cshtml")); foreach (var file in filesToRefactor) { Ux.WriteLine(string.Format("Refactoring {0}", file)); SeperatedCssViewModel seperatedCssViewModel; try { seperatedCssViewModel = PageCssSeperationEvaluator.Evaluate(File.ReadAllLines(file), Properties.Settings.Default.SolutionPath, newPath, file, mergeBlocks); } catch (Exception) { var x = string.Format("---ERROR: Unable to process {0}---", file); Ux.WriteLine(x); Ux.WriteLine(""); MessageBox.Show(x, "OPERATION HALTED", MessageBoxButton.OK, MessageBoxImage.Stop); return; } if (seperatedCssViewModel.ExtractedCssBlocks.Any()) { foreach (var newCssFile in seperatedCssViewModel.ExtractedCssBlocks) { var url = newPath + "\\" + newCssFile.ProposedFileName; if (!Directory.Exists(newPath)) { Directory.CreateDirectory(newPath); } if (File.Exists(url)) { MessageBox.Show("PLEASE REVIEW THIS FILE MANUALLY - " + url); Ux.WriteLine("ERROR - TASK STOPPED"); Ux.WriteLine(""); return; } File.WriteAllLines(url, newCssFile.Lines); var atSigns = newCssFile.Lines.Count(x => x.Contains("@")); var dotDotSlashes = newCssFile.Lines.Count(x => x.Contains("../")); if (atSigns > 0) { Ux.WriteLine(string.Format("---WARNING: {0} lines containing @ were detected", atSigns)); } if (dotDotSlashes > 0) { Ux.WriteLine(string.Format("---WARNING: {0} lines containing ../ were detected", dotDotSlashes)); } } Ux.WriteLine("Created " + seperatedCssViewModel.ExtractedCssBlocks.Count() + " new files"); File.WriteAllLines(file, seperatedCssViewModel.StripedContent); } } Ux.WriteLine("Operation complete."); Ux.WriteLine(""); }