From 3ccd5e439da4296d6f2b66ce47075ab20d039676 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sun, 14 Mar 2021 07:38:48 -0700 Subject: Minimize public surface area of Core Fixes wixtoolset/issues#6374 --- .../Bind/ExtractMergeModuleFilesCommand.cs | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'src/WixToolset.Core.WindowsInstaller/Bind/ExtractMergeModuleFilesCommand.cs') diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/ExtractMergeModuleFilesCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/ExtractMergeModuleFilesCommand.cs index e33b38b1..d4de2dd3 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/ExtractMergeModuleFilesCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/ExtractMergeModuleFilesCommand.cs @@ -11,19 +11,20 @@ namespace WixToolset.Core.WindowsInstaller.Bind using System.Runtime.InteropServices; using WixToolset.Data; using WixToolset.Core.Native; - using WixToolset.Core.Bind; using WixToolset.Data.Symbols; using WixToolset.Extensibility.Services; using WixToolset.Core.WindowsInstaller.Msi; + using WixToolset.Extensibility.Data; /// /// Retrieve files information and extract them from merge modules. /// internal class ExtractMergeModuleFilesCommand { - public ExtractMergeModuleFilesCommand(IMessaging messaging, IEnumerable wixMergeSymbols, IEnumerable fileFacades, int installerVersion, string intermediateFolder, bool suppressLayout) + public ExtractMergeModuleFilesCommand(IMessaging messaging, IWindowsInstallerBackendHelper backendHelper, IEnumerable wixMergeSymbols, IEnumerable fileFacades, int installerVersion, string intermediateFolder, bool suppressLayout) { this.Messaging = messaging; + this.BackendHelper = backendHelper; this.WixMergeSymbols = wixMergeSymbols; this.FileFacades = fileFacades; this.OutputInstallerVersion = installerVersion; @@ -33,9 +34,11 @@ namespace WixToolset.Core.WindowsInstaller.Bind private IMessaging Messaging { get; } + private IWindowsInstallerBackendHelper BackendHelper { get; } + private IEnumerable WixMergeSymbols { get; } - private IEnumerable FileFacades { get; } + private IEnumerable FileFacades { get; } private int OutputInstallerVersion { get; } @@ -43,11 +46,11 @@ namespace WixToolset.Core.WindowsInstaller.Bind private bool SuppressLayout { get; } - public IEnumerable MergeModulesFileFacades { get; private set; } + public IEnumerable MergeModulesFileFacades { get; private set; } public void Execute() { - var mergeModulesFileFacades = new List(); + var mergeModulesFileFacades = new List(); var interop = new MsmInterop(); var merge = interop.GetMsmMerge(); @@ -75,7 +78,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind this.MergeModulesFileFacades = mergeModulesFileFacades; } - private bool CreateFacadesForMergeModuleFiles(WixMergeSymbol wixMergeRow, List mergeModulesFileFacades, Dictionary indexedFileFacades) + private bool CreateFacadesForMergeModuleFiles(WixMergeSymbol wixMergeRow, List mergeModulesFileFacades, Dictionary indexedFileFacades) { var containsFiles = false; @@ -86,7 +89,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind { if (db.TableExists("File") && db.TableExists("Component")) { - var uniqueModuleFileIdentifiers = new Dictionary(StringComparer.OrdinalIgnoreCase); + var uniqueModuleFileIdentifiers = new Dictionary(StringComparer.OrdinalIgnoreCase); using (var view = db.OpenExecuteView("SELECT `File`, `Directory_` FROM `File`, `Component` WHERE `Component_`=`Component`")) { @@ -102,7 +105,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind fileSymbol.DiskId = wixMergeRow.DiskId; fileSymbol.Source = new IntermediateFieldPathValue { Path = Path.Combine(this.IntermediateFolder, wixMergeRow.Id.Id, record[1]) }; - var mergeModuleFileFacade = new FileFacade(true, fileSymbol); + var mergeModuleFileFacade = this.BackendHelper.CreateFileFacadeFromMergeModule(fileSymbol); // If case-sensitive collision with another merge module or a user-authored file identifier. if (indexedFileFacades.TryGetValue(mergeModuleFileFacade.Id, out var collidingFacade)) -- cgit v1.2.3-55-g6feb