@@ -96,20 +96,24 @@ public async Task<string> GetAccessToken([FromBody] OAuthRequestDto authRequestD
9696 { "code" , authRequestDto . Code }
9797 } ;
9898
99- var requestMessage = new HttpRequestMessage
99+ string responseContent = string . Empty ;
100+ try
100101 {
101- Method = HttpMethod . Post ,
102- RequestUri = new Uri ( string . Format ( AuthorizationService . OAuthProxyTokenEndpoint , AuthorizationService . OAuthProxyBaseUrl ) ) ,
103- Content = new FormUrlEncodedContent ( data )
104- } ;
105- requestMessage . Headers . Add ( "service_name" , AuthorizationService . Service ) ;
102+ var requestMessage = new HttpRequestMessage
103+ {
104+ Method = HttpMethod . Post ,
105+ RequestUri = new Uri ( string . Format ( AuthorizationService . OAuthProxyTokenEndpoint , AuthorizationService . OAuthProxyBaseUrl ) ) ,
106+ Content = new FormUrlEncodedContent ( data )
107+ } ;
108+ requestMessage . Headers . Add ( "service_name" , AuthorizationService . Service ) ;
106109
107- var response = await ClientFactory ( ) . SendAsync ( requestMessage ) ;
108- if ( response . IsSuccessStatusCode )
109- {
110- var result = await response . Content . ReadAsStringAsync ( ) ;
110+ var response = await ClientFactory ( ) . SendAsync ( requestMessage ) ;
111111
112- var tokenDto = JsonConvert . DeserializeObject < TokenDto > ( result ) ;
112+ responseContent = await response . Content . ReadAsStringAsync ( ) ;
113+
114+ response . EnsureSuccessStatusCode ( ) ;
115+
116+ var tokenDto = JsonConvert . DeserializeObject < TokenDto > ( responseContent ) ;
113117
114118 var identity = await _dynamicsService . GetIdentity ( tokenDto . AccessToken ) ;
115119
@@ -118,18 +122,25 @@ public async Task<string> GetAccessToken([FromBody] OAuthRequestDto authRequestD
118122 else
119123 return "Error: " + identity . Error . Message ;
120124
121- return result ;
122- }
125+ return responseContent ;
123126
124- if ( response . StatusCode == HttpStatusCode . BadRequest )
127+ }
128+ catch ( HttpRequestException ex ) when ( ex . Message . Contains ( HttpStatusCode . BadRequest . ToString ( ) ) )
125129 {
126- var errorResult = await response . Content . ReadAsStringAsync ( ) ;
127- var errorDto = JsonConvert . DeserializeObject < ErrorDto > ( errorResult ) ;
130+ var errorDto = JsonConvert . DeserializeObject < ErrorDto > ( responseContent ) ;
128131
129132 return "Error: " + errorDto . ErrorDescription ;
130133 }
134+ catch ( HttpRequestException ex ) when ( ex . Message . Contains ( HttpStatusCode . Unauthorized . ToString ( ) ) )
135+ {
136+ var errorDto = JsonConvert . DeserializeObject < ErrorDto > ( responseContent ) ;
131137
132- return "Error: An unexpected error occurred." ;
138+ return "Error: " + errorDto . ErrorDescription ;
139+ }
140+ catch
141+ {
142+ return "Error: An unexpected error occurred." ;
143+ }
133144 }
134145
135146 [ HttpGet ]
0 commit comments