From 167d26d002b1412e72d96ed2bbc0761fc0f1344b Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Fri, 12 Jun 2020 12:51:28 -0700 Subject: Normalize commands to use constructors --- .../Bind/AssignMediaCommand.cs | 8 ++- .../Bind/BindDatabaseCommand.cs | 82 ++++++++++------------ .../Bind/UpdateFileFacadesCommand.cs | 14 ++-- 3 files changed, 52 insertions(+), 52 deletions(-) diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/AssignMediaCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/AssignMediaCommand.cs index ae7e5788..1d677a70 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/AssignMediaCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/AssignMediaCommand.cs @@ -18,20 +18,22 @@ namespace WixToolset.Core.WindowsInstaller.Bind { private const int DefaultMaximumUncompressedMediaSize = 200; // Default value is 200 MB - public AssignMediaCommand(IntermediateSection section, IMessaging messaging) + public AssignMediaCommand(IntermediateSection section, IMessaging messaging, IEnumerable fileFacades, bool compressed) { this.CabinetNameTemplate = "Cab{0}.cab"; this.Section = section; this.Messaging = messaging; + this.FileFacades = fileFacades; + this.FilesCompressed = compressed; } private IntermediateSection Section { get; } private IMessaging Messaging { get; } - public IEnumerable FileFacades { private get; set; } + private IEnumerable FileFacades { get; } - public bool FilesCompressed { private get; set; } + private bool FilesCompressed { get; } public string CabinetNameTemplate { private get; set; } diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs index e0dd2b96..b3f81212 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs @@ -277,11 +277,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind // Gather information about files that do not come from merge modules. { - var command = new UpdateFileFacadesCommand(this.Messaging, section); - command.FileFacades = fileFacades; - command.UpdateFileFacades = fileFacades.Where(f => !f.FromModule); - command.OverwriteHash = true; - command.VariableCache = variableCache; + var command = new UpdateFileFacadesCommand(this.Messaging, section, fileFacades, fileFacades.Where(f => !f.FromModule), variableCache, overwriteHash: true); command.Execute(); } @@ -290,9 +286,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind Dictionary> filesByCabinetMedia; IEnumerable uncompressedFiles; { - var command = new AssignMediaCommand(section, this.Messaging); - command.FileFacades = fileFacades; - command.FilesCompressed = compressed; + var command = new AssignMediaCommand(section, this.Messaging, fileFacades, compressed); command.Execute(); assignedMediaRows = command.MediaRows; @@ -313,6 +307,42 @@ namespace WixToolset.Core.WindowsInstaller.Bind command.Execute(); } +#if TODO_FINISH_UPDATE // use tuples instead of rows + // Extended binder extensions can be called now that fields are resolved. + { + Table updatedFiles = this.Output.EnsureTable(this.TableDefinitions["WixBindUpdatedFiles"]); + + foreach (IBinderExtension extension in this.Extensions) + { + extension.AfterResolvedFields(this.Output); + } + + List updatedFileFacades = new List(); + + foreach (Row updatedFile in updatedFiles.Rows) + { + string updatedId = updatedFile.FieldAsString(0); + + FileFacade updatedFacade = fileFacades.First(f => f.File.File.Equals(updatedId)); + + updatedFileFacades.Add(updatedFacade); + } + + if (updatedFileFacades.Any()) + { + UpdateFileFacadesCommand command = new UpdateFileFacadesCommand(this.Messaging, section, fileFacades, updateFileFacades, variableCache, overwriteHash: false); + //command.FileFacades = fileFacades; + //command.UpdateFileFacades = updatedFileFacades; + //command.ModularizationGuid = modularizationGuid; + //command.Output = this.Output; + //command.OverwriteHash = true; + //command.TableDefinitions = this.TableDefinitions; + //command.VariableCache = variableCache; + command.Execute(); + } + } +#endif + // Set generated component guids. { var command = new CalculateComponentGuids(this.Messaging, this.BackendHelper, this.PathResolver, section); @@ -376,42 +406,6 @@ namespace WixToolset.Core.WindowsInstaller.Bind } } -#if TODO_FINISH_UPDATE - // Extended binder extensions can be called now that fields are resolved. - { - Table updatedFiles = this.Output.EnsureTable(this.TableDefinitions["WixBindUpdatedFiles"]); - - foreach (IBinderExtension extension in this.Extensions) - { - extension.AfterResolvedFields(this.Output); - } - - List updatedFileFacades = new List(); - - foreach (Row updatedFile in updatedFiles.Rows) - { - string updatedId = updatedFile.FieldAsString(0); - - FileFacade updatedFacade = fileFacades.First(f => f.File.File.Equals(updatedId)); - - updatedFileFacades.Add(updatedFacade); - } - - if (updatedFileFacades.Any()) - { - UpdateFileFacadesCommand command = new UpdateFileFacadesCommand(); - command.FileFacades = fileFacades; - command.UpdateFileFacades = updatedFileFacades; - command.ModularizationGuid = modularizationGuid; - command.Output = this.Output; - command.OverwriteHash = true; - command.TableDefinitions = this.TableDefinitions; - command.VariableCache = variableCache; - command.Execute(); - } - } -#endif - // Stop processing if an error previously occurred. if (this.Messaging.EncounteredError) { diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/UpdateFileFacadesCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/UpdateFileFacadesCommand.cs index 63a8b3d9..75bcfe17 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/UpdateFileFacadesCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/UpdateFileFacadesCommand.cs @@ -19,23 +19,27 @@ namespace WixToolset.Core.WindowsInstaller.Bind /// internal class UpdateFileFacadesCommand { - public UpdateFileFacadesCommand(IMessaging messaging, IntermediateSection section) + public UpdateFileFacadesCommand(IMessaging messaging, IntermediateSection section, IEnumerable fileFacades, IEnumerable updateFileFacades, IDictionary variableCache, bool overwriteHash) { this.Messaging = messaging; this.Section = section; + this.FileFacades = fileFacades; + this.UpdateFileFacades = updateFileFacades; + this.VariableCache = variableCache; + this.OverwriteHash = overwriteHash; } private IMessaging Messaging { get; } private IntermediateSection Section { get; } - public IEnumerable FileFacades { private get; set; } + private IEnumerable FileFacades { get; } - public IEnumerable UpdateFileFacades { private get; set; } + private IEnumerable UpdateFileFacades { get; } - public bool OverwriteHash { private get; set; } + private bool OverwriteHash { get; } - public IDictionary VariableCache { private get; set; } + private IDictionary VariableCache { get; } public void Execute() { -- cgit v1.2.3-55-g6feb