diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/WixToolset.Core.TestPackage/TestMessageListener.cs | 5 | ||||
| -rw-r--r-- | src/WixToolset.Core/ExtensibilityServices/Messaging.cs | 89 |
2 files changed, 7 insertions, 87 deletions
diff --git a/src/WixToolset.Core.TestPackage/TestMessageListener.cs b/src/WixToolset.Core.TestPackage/TestMessageListener.cs index 246cddd8..b5863869 100644 --- a/src/WixToolset.Core.TestPackage/TestMessageListener.cs +++ b/src/WixToolset.Core.TestPackage/TestMessageListener.cs | |||
| @@ -1,6 +1,7 @@ | |||
| 1 | using System.Collections.Generic; | 1 | using System.Collections.Generic; |
| 2 | using WixToolset.Data; | 2 | using WixToolset.Data; |
| 3 | using WixToolset.Extensibility; | 3 | using WixToolset.Extensibility; |
| 4 | using WixToolset.Extensibility.Services; | ||
| 4 | 5 | ||
| 5 | namespace WixToolset.Core.TestPackage | 6 | namespace WixToolset.Core.TestPackage |
| 6 | { | 7 | { |
| @@ -21,5 +22,7 @@ namespace WixToolset.Core.TestPackage | |||
| 21 | { | 22 | { |
| 22 | this.Messages.Add(new Message(null, MessageLevel.Information, 0, message)); | 23 | this.Messages.Add(new Message(null, MessageLevel.Information, 0, message)); |
| 23 | } | 24 | } |
| 25 | |||
| 26 | public MessageLevel CalculateMessageLevel(IMessaging messaging, Message message, MessageLevel defaultMessageLevel) => defaultMessageLevel; | ||
| 24 | } | 27 | } |
| 25 | } | 28 | } |
diff --git a/src/WixToolset.Core/ExtensibilityServices/Messaging.cs b/src/WixToolset.Core/ExtensibilityServices/Messaging.cs index f4673952..266d842a 100644 --- a/src/WixToolset.Core/ExtensibilityServices/Messaging.cs +++ b/src/WixToolset.Core/ExtensibilityServices/Messaging.cs | |||
| @@ -41,94 +41,9 @@ namespace WixToolset.Core.ExtensibilityServices | |||
| 41 | this.suppressedWarnings.Add(warningNumber); | 41 | this.suppressedWarnings.Add(warningNumber); |
| 42 | } | 42 | } |
| 43 | 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 | |||
| 129 | public void Write(Message message) | 44 | public void Write(Message message) |
| 130 | { | 45 | { |
| 131 | var level = CalculateMessageLevel(message); | 46 | var level = this.CalculateMessageLevel(message); |
| 132 | 47 | ||
| 133 | if (level == MessageLevel.Nothing) | 48 | if (level == MessageLevel.Nothing) |
| 134 | { | 49 | { |
| @@ -188,6 +103,8 @@ namespace WixToolset.Core.ExtensibilityServices | |||
| 188 | } | 103 | } |
| 189 | } | 104 | } |
| 190 | 105 | ||
| 106 | level = this.listener?.CalculateMessageLevel(this, message, level) ?? level; | ||
| 107 | |||
| 191 | return level; | 108 | return level; |
| 192 | } | 109 | } |
| 193 | } | 110 | } |
