22using System . Collections . Generic ;
33using System . Linq ;
44using System . Management . Automation ;
5+ using System . Security . Cryptography . Pkcs ;
56using System . Threading ;
67
78namespace PnP . PowerShell . Commands . Utilities
@@ -38,7 +39,25 @@ public void Start()
3839 }
3940 else
4041 {
41- Cmdlet . Host . UI . WriteLine ( message . Text ) ;
42+ switch ( message . Type )
43+ {
44+ case MessageType . Message :
45+ {
46+ Cmdlet . Host . UI . WriteLine ( message . Text ) ;
47+ break ;
48+ }
49+ case MessageType . Warning :
50+ {
51+ Cmdlet . Host . UI . WriteWarningLine ( message . Text ) ;
52+ break ;
53+ }
54+ case MessageType . Verbose :
55+ {
56+ Cmdlet . Host . UI . WriteVerboseLine ( message . Text ) ;
57+ break ;
58+ }
59+ }
60+
4261 }
4362 break ;
4463 }
@@ -63,6 +82,14 @@ public void WriteMessage(string message, bool formatted = true)
6382 }
6483 }
6584
85+ public void WriteVerbose ( string message )
86+ {
87+ lock ( LockToken )
88+ {
89+ Queue . Enqueue ( new Message ( ) { Formatted = false , Text = message , Type = MessageType . Verbose } ) ;
90+ }
91+ }
92+
6693 internal class Message
6794 {
6895 public string Text { get ; set ; }
@@ -73,7 +100,8 @@ internal class Message
73100 internal enum MessageType
74101 {
75102 Message ,
76- Warning
103+ Warning ,
104+ Verbose
77105 }
78106
79107 private static List < string > WordWrap ( string text , int maxLineLength )
@@ -99,7 +127,7 @@ internal static void WriteFormattedWarning(PSCmdlet cmdlet, string message)
99127 {
100128 WriteFormattedMessage ( cmdlet , new Message { Text = message , Type = MessageType . Warning , Formatted = true } ) ;
101129 }
102-
130+
103131 internal static void WriteFormattedMessage ( PSCmdlet cmdlet , Message message )
104132 {
105133 if ( cmdlet . Host . Name == "ConsoleHost" && cmdlet . Host . UI . RawUI . MaxWindowSize . Width > 8 )
@@ -142,6 +170,11 @@ internal static void WriteFormattedMessage(PSCmdlet cmdlet, Message message)
142170 cmdlet . WriteWarning ( $ "{ notificationColor } \n { outMessage } { resetColor } \n ") ;
143171 break ;
144172 }
173+ case MessageType . Verbose :
174+ {
175+ cmdlet . WriteVerbose ( outMessage ) ;
176+ break ;
177+ }
145178 }
146179 }
147180 else
@@ -158,6 +191,11 @@ internal static void WriteFormattedMessage(PSCmdlet cmdlet, Message message)
158191 cmdlet . WriteWarning ( message . Text ) ;
159192 break ;
160193 }
194+ case MessageType . Verbose :
195+ {
196+ cmdlet . WriteVerbose ( message . Text ) ;
197+ break ;
198+ }
161199 }
162200 }
163201 }
0 commit comments