44
55namespace NamespacePrefixPlaceholder . PowerShell
66{
7+ using NamespacePrefixPlaceholder . PowerShell . Models ;
78 using Newtonsoft . Json ;
89 using System ;
910 using System . Collections . Generic ;
@@ -63,9 +64,9 @@ public static async Task<string> GetHttpRequestLogAsync(HttpRequestMessage reque
6364
6465 StringBuilder stringBuilder = new StringBuilder ( ) ;
6566 stringBuilder . AppendLine ( $ "============================ HTTP REQUEST ============================{ Environment . NewLine } ") ;
66- stringBuilder . AppendLine ( $ "HTTP Method:{ Environment . NewLine } { requestClone . Method . ToString ( ) } { Environment . NewLine } ") ;
67- stringBuilder . AppendLine ( $ "Absolute Uri:{ Environment . NewLine } { requestClone . RequestUri . ToString ( ) } { Environment . NewLine } ") ;
68- stringBuilder . AppendLine ( $ "Headers:{ Environment . NewLine } { HeadersToString ( ConvertHttpHeadersToCollection ( requestClone . Headers ) ) } { Environment . NewLine } ") ;
67+ stringBuilder . AppendLine ( $ "HTTP Method:{ Environment . NewLine } { requestClone . Method } { Environment . NewLine } ") ;
68+ stringBuilder . AppendLine ( $ "Absolute Uri:{ Environment . NewLine } { requestClone . RequestUri } { Environment . NewLine } ") ;
69+ stringBuilder . AppendLine ( $ "Headers:{ Environment . NewLine } { HeadersToString ( requestClone . Headers ) } { Environment . NewLine } ") ;
6970 stringBuilder . AppendLine ( $ "Body:{ Environment . NewLine } { SanitizeBody ( body ) } { Environment . NewLine } ") ;
7071 return stringBuilder . ToString ( ) ;
7172 }
@@ -84,12 +85,30 @@ public static async Task<string> GetHttpResponseLogAsync(HttpResponseMessage res
8485 StringBuilder stringBuilder = new StringBuilder ( ) ;
8586 stringBuilder . AppendLine ( $ "============================ HTTP RESPONSE ============================{ Environment . NewLine } ") ;
8687 stringBuilder . AppendLine ( $ "Status Code:{ Environment . NewLine } { response . StatusCode } { Environment . NewLine } ") ;
87- stringBuilder . AppendLine ( $ "Headers:{ Environment . NewLine } { HeadersToString ( ConvertHttpHeadersToCollection ( response . Headers ) ) } { Environment . NewLine } ") ;
88+ stringBuilder . AppendLine ( $ "Headers:{ Environment . NewLine } { HeadersToString ( response . Headers ) } { Environment . NewLine } ") ;
8889 stringBuilder . AppendLine ( $ "Body:{ Environment . NewLine } { SanitizeBody ( body ) } { Environment . NewLine } ") ;
8990 return stringBuilder . ToString ( ) ;
9091 }
9192
92- private static Regex regexPattern = new Regex ( "(\\ s*\" access_token\" \\ s*:\\ s*)\" [^\" ]+\" " , RegexOptions . Compiled ) ;
93+ public static async Task < string > GetErrorLogAsync ( HttpResponseMessage response , IMicrosoftGraphODataErrorsMainError odataError )
94+ {
95+ if ( response == null ) return string . Empty ;
96+
97+ StringBuilder stringBuilder = new StringBuilder ( ) ;
98+ stringBuilder . AppendLine ( $ "{ odataError ? . Message } { Environment . NewLine } ") ;
99+ stringBuilder . AppendLine ( $ "Status: { ( ( int ) response . StatusCode ) } ({ response . StatusCode } )") ;
100+ stringBuilder . AppendLine ( $ "ErrorCode: { odataError ? . Code } ") ;
101+ stringBuilder . AppendLine ( $ "Date: { odataError ? . Innererror ? . Date } { Environment . NewLine } ") ;
102+ stringBuilder . AppendLine ( $ "Headers:{ Environment . NewLine } { HeadersToString ( response . Headers ) } { Environment . NewLine } ") ;
103+ return stringBuilder . ToString ( ) ;
104+ }
105+
106+ internal static string HeadersToString ( HttpHeaders headers )
107+ {
108+ return HeadersToString ( ConvertHttpHeadersToCollection ( headers ) ) ;
109+ }
110+
111+ private static readonly Regex regexPattern = new Regex ( "(\\ s*\" access_token\" \\ s*:\\ s*)\" [^\" ]+\" " , RegexOptions . Compiled ) ;
93112 private static object SanitizeBody ( string body )
94113 {
95114 IList < Regex > regexList = new List < Regex > ( ) ;
@@ -110,7 +129,7 @@ private static IDictionary<string, IEnumerable<string>> ConvertHttpHeadersToColl
110129 return headers . ToDictionary ( a => a . Key , a => a . Value ) ;
111130 }
112131
113- private static object HeadersToString ( IDictionary < string , IEnumerable < string > > headers )
132+ private static string HeadersToString ( IDictionary < string , IEnumerable < string > > headers )
114133 {
115134 StringBuilder stringBuilder = headers . Aggregate ( new StringBuilder ( ) ,
116135 ( sb , kvp ) => sb . AppendLine ( string . Format ( "{0,-30}: {1}" , kvp . Key , String . Join ( "," , kvp . Value . ToArray ( ) ) ) ) ) ;
0 commit comments