@@ -96,20 +96,24 @@ public async Task<string> GetAccessToken([FromBody] OAuthRequestDto authRequestD
96
96
{ "code" , authRequestDto . Code }
97
97
} ;
98
98
99
- var requestMessage = new HttpRequestMessage
99
+ string responseContent = string . Empty ;
100
+ try
100
101
{
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 ) ;
106
109
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 ) ;
111
111
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 ) ;
113
117
114
118
var identity = await _dynamicsService . GetIdentity ( tokenDto . AccessToken ) ;
115
119
@@ -118,18 +122,25 @@ public async Task<string> GetAccessToken([FromBody] OAuthRequestDto authRequestD
118
122
else
119
123
return "Error: " + identity . Error . Message ;
120
124
121
- return result ;
122
- }
125
+ return responseContent ;
123
126
124
- if ( response . StatusCode == HttpStatusCode . BadRequest )
127
+ }
128
+ catch ( HttpRequestException ex ) when ( ex . Message . Contains ( HttpStatusCode . BadRequest . ToString ( ) ) )
125
129
{
126
- var errorResult = await response . Content . ReadAsStringAsync ( ) ;
127
- var errorDto = JsonConvert . DeserializeObject < ErrorDto > ( errorResult ) ;
130
+ var errorDto = JsonConvert . DeserializeObject < ErrorDto > ( responseContent ) ;
128
131
129
132
return "Error: " + errorDto . ErrorDescription ;
130
133
}
134
+ catch ( HttpRequestException ex ) when ( ex . Message . Contains ( HttpStatusCode . Unauthorized . ToString ( ) ) )
135
+ {
136
+ var errorDto = JsonConvert . DeserializeObject < ErrorDto > ( responseContent ) ;
131
137
132
- return "Error: An unexpected error occurred." ;
138
+ return "Error: " + errorDto . ErrorDescription ;
139
+ }
140
+ catch
141
+ {
142
+ return "Error: An unexpected error occurred." ;
143
+ }
133
144
}
134
145
135
146
[ HttpGet ]
0 commit comments