private async Task Minify() { _dte.StatusBar.Text = "Web Essentials: Minifying files..."; var extensions = new HashSet <string>( Mef.GetSupportedExtensions <IFileMinifier>(), StringComparer.OrdinalIgnoreCase ); var files = ProjectHelpers.GetAllProjects() .Select(ProjectHelpers.GetRootFolder) .SelectMany(p => Directory.EnumerateFiles(p, "*", SearchOption.AllDirectories)) .Where(f => extensions.Contains(Path.GetExtension(f))); await Task.WhenAll(files.AsParallel().Select(async file => await MinificationSaveListener.ReMinify( FileExtensionRegistry.GetContentTypeForExtension(Path.GetExtension(file).TrimStart('.')), file, false ))); WebEssentialsPackage.DTE.StatusBar.Clear(); }
private void Minify() { _dte.StatusBar.Text = "Web Essentials: Minifying files..."; var extensions = new HashSet <string>( Mef.GetSupportedExtensions <IFileMinifier>(), StringComparer.OrdinalIgnoreCase ); var files = ProjectHelpers.GetAllProjects() .Select(ProjectHelpers.GetRootFolder) .SelectMany(p => Directory.EnumerateFiles(p, "*", SearchOption.AllDirectories)) .Where(f => extensions.Contains(Path.GetExtension(f))); // Perform expensive blocking work in parallel Parallel.ForEach(files, file => MinificationSaveListener.ReMinify( ContentTypeManager.GetContentType(Path.GetExtension(file).TrimStart('.')), file, false ) ); EditorExtensionsPackage.DTE.StatusBar.Clear(); }