aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Core.WindowsInstaller/Bind/SequenceActionsCommand.cs
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2017-12-19 12:25:40 -0800
committerRob Mensching <rob@firegiant.com>2017-12-19 12:25:40 -0800
commit155a6e96346e0cb3d9ab6f5372fa29b46ebaee89 (patch)
tree59d1f151bfde8068b6014b05b5c8cfea3402c974 /src/WixToolset.Core.WindowsInstaller/Bind/SequenceActionsCommand.cs
parent6f1665ed759b31bd095f186f9239232c653597cd (diff)
downloadwix-155a6e96346e0cb3d9ab6f5372fa29b46ebaee89.tar.gz
wix-155a6e96346e0cb3d9ab6f5372fa29b46ebaee89.tar.bz2
wix-155a6e96346e0cb3d9ab6f5372fa29b46ebaee89.zip
Integrate simplified message handling
Diffstat (limited to 'src/WixToolset.Core.WindowsInstaller/Bind/SequenceActionsCommand.cs')
-rw-r--r--src/WixToolset.Core.WindowsInstaller/Bind/SequenceActionsCommand.cs43
1 files changed, 22 insertions, 21 deletions
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/SequenceActionsCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/SequenceActionsCommand.cs
index cf9c0332..47eb9408 100644
--- a/src/WixToolset.Core.WindowsInstaller/Bind/SequenceActionsCommand.cs
+++ b/src/WixToolset.Core.WindowsInstaller/Bind/SequenceActionsCommand.cs
@@ -9,6 +9,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind
9 using WixToolset.Core.Native; 9 using WixToolset.Core.Native;
10 using WixToolset.Data; 10 using WixToolset.Data;
11 using WixToolset.Data.Tuples; 11 using WixToolset.Data.Tuples;
12 using WixToolset.Extensibility.Services;
12 13
13 internal class SequenceActionsCommand 14 internal class SequenceActionsCommand
14 { 15 {
@@ -27,7 +28,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind
27 28
28 private Dictionary<string, WixActionTuple> StandardActionsById { get; } 29 private Dictionary<string, WixActionTuple> StandardActionsById { get; }
29 30
30 public Messaging Messaging { private get; set; } 31 public IMessaging Messaging { private get; set; }
31 32
32 public void Execute() 33 public void Execute()
33 { 34 {
@@ -64,10 +65,10 @@ namespace WixToolset.Core.WindowsInstaller.Bind
64 { 65 {
65 if (overridableActionRows.TryGetValue(actionRow.Id.Id, out var collidingActionRow)) 66 if (overridableActionRows.TryGetValue(actionRow.Id.Id, out var collidingActionRow))
66 { 67 {
67 this.Messaging.OnMessage(WixErrors.OverridableActionCollision(actionRow.SourceLineNumbers, actionRow.SequenceTable.ToString(), actionRow.Action)); 68 this.Messaging.Write(ErrorMessages.OverridableActionCollision(actionRow.SourceLineNumbers, actionRow.SequenceTable.ToString(), actionRow.Action));
68 if (null != collidingActionRow.SourceLineNumbers) 69 if (null != collidingActionRow.SourceLineNumbers)
69 { 70 {
70 this.Messaging.OnMessage(WixErrors.OverridableActionCollision2(collidingActionRow.SourceLineNumbers)); 71 this.Messaging.Write(ErrorMessages.OverridableActionCollision2(collidingActionRow.SourceLineNumbers));
71 } 72 }
72 } 73 }
73 else 74 else
@@ -93,10 +94,10 @@ namespace WixToolset.Core.WindowsInstaller.Bind
93 94
94 if (overridableActionRows.TryGetValue(actionRow.Id.Id, out var collidingActionRow)) 95 if (overridableActionRows.TryGetValue(actionRow.Id.Id, out var collidingActionRow))
95 { 96 {
96 this.Messaging.OnMessage(WixErrors.ActionCollision(actionRow.SourceLineNumbers, actionRow.SequenceTable.ToString(), actionRow.Action)); 97 this.Messaging.Write(ErrorMessages.ActionCollision(actionRow.SourceLineNumbers, actionRow.SequenceTable.ToString(), actionRow.Action));
97 if (null != collidingActionRow.SourceLineNumbers) 98 if (null != collidingActionRow.SourceLineNumbers)
98 { 99 {
99 this.Messaging.OnMessage(WixErrors.ActionCollision2(collidingActionRow.SourceLineNumbers)); 100 this.Messaging.Write(ErrorMessages.ActionCollision2(collidingActionRow.SourceLineNumbers));
100 } 101 }
101 } 102 }
102 else 103 else
@@ -127,20 +128,20 @@ namespace WixToolset.Core.WindowsInstaller.Bind
127 { 128 {
128 if (requiredActionRow.Overridable) 129 if (requiredActionRow.Overridable)
129 { 130 {
130 this.Messaging.OnMessage(WixWarnings.SuppressAction(suppressActionRow.SourceLineNumbers, suppressActionRow.Action, suppressActionRow.SequenceTable.ToString())); 131 this.Messaging.Write(WarningMessages.SuppressAction(suppressActionRow.SourceLineNumbers, suppressActionRow.Action, suppressActionRow.SequenceTable.ToString()));
131 if (null != requiredActionRow.SourceLineNumbers) 132 if (null != requiredActionRow.SourceLineNumbers)
132 { 133 {
133 this.Messaging.OnMessage(WixWarnings.SuppressAction2(requiredActionRow.SourceLineNumbers)); 134 this.Messaging.Write(WarningMessages.SuppressAction2(requiredActionRow.SourceLineNumbers));
134 } 135 }
135 136
136 requiredActionRows.Remove(key); 137 requiredActionRows.Remove(key);
137 } 138 }
138 else // suppressing a non-overridable action row 139 else // suppressing a non-overridable action row
139 { 140 {
140 this.Messaging.OnMessage(WixErrors.SuppressNonoverridableAction(suppressActionRow.SourceLineNumbers, suppressActionRow.SequenceTable.ToString(), suppressActionRow.Action)); 141 this.Messaging.Write(ErrorMessages.SuppressNonoverridableAction(suppressActionRow.SourceLineNumbers, suppressActionRow.SequenceTable.ToString(), suppressActionRow.Action));
141 if (null != requiredActionRow.SourceLineNumbers) 142 if (null != requiredActionRow.SourceLineNumbers)
142 { 143 {
143 this.Messaging.OnMessage(WixErrors.SuppressNonoverridableAction2(requiredActionRow.SourceLineNumbers)); 144 this.Messaging.Write(ErrorMessages.SuppressNonoverridableAction2(requiredActionRow.SourceLineNumbers));
144 } 145 }
145 } 146 }
146 } 147 }
@@ -156,14 +157,14 @@ namespace WixToolset.Core.WindowsInstaller.Bind
156 // check for standard actions that don't have a sequence number in a merge module 157 // check for standard actions that don't have a sequence number in a merge module
157 if (SectionType.Module == this.Section.Type && WindowsInstallerStandard.IsStandardAction(actionRow.Action)) 158 if (SectionType.Module == this.Section.Type && WindowsInstallerStandard.IsStandardAction(actionRow.Action))
158 { 159 {
159 this.Messaging.OnMessage(WixErrors.StandardActionRelativelyScheduledInModule(actionRow.SourceLineNumbers, actionRow.SequenceTable.ToString(), actionRow.Action)); 160 this.Messaging.Write(ErrorMessages.StandardActionRelativelyScheduledInModule(actionRow.SourceLineNumbers, actionRow.SequenceTable.ToString(), actionRow.Action));
160 } 161 }
161 162
162 this.SequenceActionRow(actionRow, requiredActionRows); 163 this.SequenceActionRow(actionRow, requiredActionRows);
163 } 164 }
164 else if (SectionType.Module == this.Section.Type && 0 < actionRow.Sequence && !WindowsInstallerStandard.IsStandardAction(actionRow.Action)) // check for custom actions and dialogs that have a sequence number 165 else if (SectionType.Module == this.Section.Type && 0 < actionRow.Sequence && !WindowsInstallerStandard.IsStandardAction(actionRow.Action)) // check for custom actions and dialogs that have a sequence number
165 { 166 {
166 this.Messaging.OnMessage(WixErrors.CustomActionSequencedInModule(actionRow.SourceLineNumbers, actionRow.SequenceTable.ToString(), actionRow.Action)); 167 this.Messaging.Write(ErrorMessages.CustomActionSequencedInModule(actionRow.SourceLineNumbers, actionRow.SequenceTable.ToString(), actionRow.Action));
167 } 168 }
168 } 169 }
169 170
@@ -231,10 +232,10 @@ namespace WixToolset.Core.WindowsInstaller.Bind
231 { 232 {
232 if (sequenceScheduledActionRow.Sequence == actionRow.Sequence) 233 if (sequenceScheduledActionRow.Sequence == actionRow.Sequence)
233 { 234 {
234 this.Messaging.OnMessage(WixWarnings.ActionSequenceCollision(actionRow.SourceLineNumbers, actionRow.SequenceTable.ToString(), actionRow.Action, sequenceScheduledActionRow.Action, actionRow.Sequence)); 235 this.Messaging.Write(WarningMessages.ActionSequenceCollision(actionRow.SourceLineNumbers, actionRow.SequenceTable.ToString(), actionRow.Action, sequenceScheduledActionRow.Action, actionRow.Sequence));
235 if (null != sequenceScheduledActionRow.SourceLineNumbers) 236 if (null != sequenceScheduledActionRow.SourceLineNumbers)
236 { 237 {
237 this.Messaging.OnMessage(WixWarnings.ActionSequenceCollision2(sequenceScheduledActionRow.SourceLineNumbers)); 238 this.Messaging.Write(WarningMessages.ActionSequenceCollision2(sequenceScheduledActionRow.SourceLineNumbers));
238 } 239 }
239 } 240 }
240 } 241 }
@@ -262,19 +263,19 @@ namespace WixToolset.Core.WindowsInstaller.Bind
262 // Create errors for all the before actions. 263 // Create errors for all the before actions.
263 foreach (var actionRow in relativeActions.PreviousActions) 264 foreach (var actionRow in relativeActions.PreviousActions)
264 { 265 {
265 this.Messaging.OnMessage(WixErrors.ActionScheduledRelativeToTerminationAction(actionRow.SourceLineNumbers, actionRow.SequenceTable.ToString(), actionRow.Action, absoluteActionRow.Action)); 266 this.Messaging.Write(ErrorMessages.ActionScheduledRelativeToTerminationAction(actionRow.SourceLineNumbers, actionRow.SequenceTable.ToString(), actionRow.Action, absoluteActionRow.Action));
266 } 267 }
267 268
268 // Create errors for all the after actions. 269 // Create errors for all the after actions.
269 foreach (var actionRow in relativeActions.NextActions) 270 foreach (var actionRow in relativeActions.NextActions)
270 { 271 {
271 this.Messaging.OnMessage(WixErrors.ActionScheduledRelativeToTerminationAction(actionRow.SourceLineNumbers, actionRow.SequenceTable.ToString(), actionRow.Action, absoluteActionRow.Action)); 272 this.Messaging.Write(ErrorMessages.ActionScheduledRelativeToTerminationAction(actionRow.SourceLineNumbers, actionRow.SequenceTable.ToString(), actionRow.Action, absoluteActionRow.Action));
272 } 273 }
273 274
274 // If there is source line information for the absolutely scheduled action display it 275 // If there is source line information for the absolutely scheduled action display it
275 if (absoluteActionRow.SourceLineNumbers != null) 276 if (absoluteActionRow.SourceLineNumbers != null)
276 { 277 {
277 this.Messaging.OnMessage(WixErrors.ActionScheduledRelativeToTerminationAction2(absoluteActionRow.SourceLineNumbers)); 278 this.Messaging.Write(ErrorMessages.ActionScheduledRelativeToTerminationAction2(absoluteActionRow.SourceLineNumbers));
278 } 279 }
279 280
280 continue; 281 continue;
@@ -289,10 +290,10 @@ namespace WixToolset.Core.WindowsInstaller.Bind
289 // look for collisions 290 // look for collisions
290 if (unusedSequence == previousUsedSequence) 291 if (unusedSequence == previousUsedSequence)
291 { 292 {
292 this.Messaging.OnMessage(WixErrors.NoUniqueActionSequenceNumber(relativeActionRow.SourceLineNumbers, relativeActionRow.SequenceTable.ToString(), relativeActionRow.Action, absoluteActionRow.Action)); 293 this.Messaging.Write(ErrorMessages.NoUniqueActionSequenceNumber(relativeActionRow.SourceLineNumbers, relativeActionRow.SequenceTable.ToString(), relativeActionRow.Action, absoluteActionRow.Action));
293 if (absoluteActionRow.SourceLineNumbers != null) 294 if (absoluteActionRow.SourceLineNumbers != null)
294 { 295 {
295 this.Messaging.OnMessage(WixErrors.NoUniqueActionSequenceNumber2(absoluteActionRow.SourceLineNumbers)); 296 this.Messaging.Write(ErrorMessages.NoUniqueActionSequenceNumber2(absoluteActionRow.SourceLineNumbers));
296 } 297 }
297 298
298 unusedSequence++; 299 unusedSequence++;
@@ -319,10 +320,10 @@ namespace WixToolset.Core.WindowsInstaller.Bind
319 320
320 if (unusedSequence == nextUsedSequence) 321 if (unusedSequence == nextUsedSequence)
321 { 322 {
322 this.Messaging.OnMessage(WixErrors.NoUniqueActionSequenceNumber(relativeActionRow.SourceLineNumbers, relativeActionRow.SequenceTable.ToString(), relativeActionRow.Action, absoluteActionRow.Action)); 323 this.Messaging.Write(ErrorMessages.NoUniqueActionSequenceNumber(relativeActionRow.SourceLineNumbers, relativeActionRow.SequenceTable.ToString(), relativeActionRow.Action, absoluteActionRow.Action));
323 if (absoluteActionRow.SourceLineNumbers != null) 324 if (absoluteActionRow.SourceLineNumbers != null)
324 { 325 {
325 this.Messaging.OnMessage(WixErrors.NoUniqueActionSequenceNumber2(absoluteActionRow.SourceLineNumbers)); 326 this.Messaging.Write(ErrorMessages.NoUniqueActionSequenceNumber2(absoluteActionRow.SourceLineNumbers));
326 } 327 }
327 328
328 unusedSequence--; 329 unusedSequence--;
@@ -596,7 +597,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind
596 } 597 }
597 else if (actionRow == parentActionRow || this.ContainsChildActionRow(actionRow, parentActionRow)) // cycle detected 598 else if (actionRow == parentActionRow || this.ContainsChildActionRow(actionRow, parentActionRow)) // cycle detected
598 { 599 {
599 throw new WixException(WixErrors.ActionCircularDependency(actionRow.SourceLineNumbers, actionRow.SequenceTable.ToString(), actionRow.Action, parentActionRow.Action)); 600 throw new WixException(ErrorMessages.ActionCircularDependency(actionRow.SourceLineNumbers, actionRow.SequenceTable.ToString(), actionRow.Action, parentActionRow.Action));
600 } 601 }
601 602
602 // Add this action to the appropriate list of dependent action rows. 603 // Add this action to the appropriate list of dependent action rows.