Let listeners adjust message levels; general messaging cleanup.
Bob Arnson committed
Jan 17, 2020 at 21:06 UTC
772ed422f3195c899246f16c9c2e5b5a839d06cd
2 files changed
+7
-87
src/WixToolset.Core.TestPackage/TestMessageListener.cs
+4
-1
@@ -1,6 +1,7 @@
1
-using System.Collections.Generic;
1
+using System.Collections.Generic;
2
using WixToolset.Data;
3
using WixToolset.Extensibility;
4
+using WixToolset.Extensibility.Services;
5
6
namespace WixToolset.Core.TestPackage
7
{
@@ -21,5 +22,7 @@ namespace WixToolset.Core.TestPackage
22
{
23
this.Messages.Add(new Message(null, MessageLevel.Information, 0, message));
24
}
25
+
26
+ public MessageLevel CalculateMessageLevel(IMessaging messaging, Message message, MessageLevel defaultMessageLevel) => defaultMessageLevel;
27
}
28
}
src/WixToolset.Core/ExtensibilityServices/Messaging.cs
+3
-86
@@ -41,94 +41,9 @@ namespace WixToolset.Core.ExtensibilityServices
41
this.suppressedWarnings.Add(warningNumber);
42
}
43
44
- public string FormatMessage(Message message)
45
- {
46
- var level = CalculateMessageLevel(message);
47
-
48
- if (level == MessageLevel.Nothing)
49
- {
50
- return String.Empty;
51
- }
52
-
53
- var shortAppName = String.IsNullOrEmpty(this.listener?.ShortAppName) ? "WIX" : this.listener.ShortAppName;
54
- var longAppName = String.IsNullOrEmpty(this.listener?.LongAppName) ? "WIX" : this.listener.LongAppName;
55
-
56
- var fileNames = new List<string>();
57
- var errorFileName = longAppName;
58
- for (var sln = message.SourceLineNumbers; null != sln; sln = sln.Parent)
59
- {
60
- if (String.IsNullOrEmpty(sln.FileName))
61
- {
62
- continue;
63
- }
64
- else if (sln.LineNumber.HasValue)
65
- {
66
- if (fileNames.Count == 0)
67
- {
68
- errorFileName = String.Format(CultureInfo.CurrentUICulture, "{0}({1})", sln.FileName, sln.LineNumber);
69
- }
70
-
71
- fileNames.Add(String.Format(CultureInfo.CurrentUICulture, "{0}: line {1}", sln.FileName, sln.LineNumber));
72
- }
73
- else
74
- {
75
- if (fileNames.Count == 0)
76
- {
77
- errorFileName = sln.FileName;
78
- }
79
-
80
- fileNames.Add(sln.FileName);
81
- }
82
- }
83
-
84
- var levelString = String.Empty;
85
- if (MessageLevel.Warning == level)
86
- {
87
- levelString = "warning";
88
- }
89
- else if (MessageLevel.Error == level)
90
- {
91
- levelString = "error";
92
- }
93
-
94
- string formatted;
95
- if (message.ResourceManager == null)
96
- {
97
- formatted = String.Format(CultureInfo.InvariantCulture, message.ResourceNameOrFormat, message.MessageArgs);
98
- }
99
- else
100
- {
101
- formatted = String.Format(CultureInfo.InvariantCulture, message.ResourceManager.GetString(message.ResourceNameOrFormat), message.MessageArgs);
102
- }
103
-
104
- var builder = new StringBuilder();
105
- if (level == MessageLevel.Information || level == MessageLevel.Verbose)
106
- {
107
- builder.Append(formatted);
108
- }
109
- else
110
- {
111
- builder.AppendFormat("{0} : {1} {2}{3:0000} : {4}", errorFileName, levelString, shortAppName, message.Id, formatted);
112
- }
113
-
114
- if (fileNames.Count > 1)
115
- {
116
- builder.AppendFormat("Source trace:{0}", Environment.NewLine);
117
-
118
- foreach (var fileName in fileNames)
119
- {
120
- builder.AppendFormat("Source trace:{0}", fileName, Environment.NewLine);
121
- }
122
-
123
- builder.AppendLine();
124
- }
125
-
126
- return builder.ToString();
127
- }
128
-
44
public void Write(Message message)
45
{
131
- var level = CalculateMessageLevel(message);
46
+ var level = this.CalculateMessageLevel(message);
47
48
if (level == MessageLevel.Nothing)
49
{
@@ -188,6 +103,8 @@ namespace WixToolset.Core.ExtensibilityServices
103
}
104
}
105
106
+ level = this.listener?.CalculateMessageLevel(this, message, level) ?? level;
107
+
108
return level;
109
}
110
}