44// </copyright>
55
66using System ;
7- using System . Collections . Generic ;
8- using System . Net ;
7+ using System . Linq ;
98using System . Net . Http ;
109using System . Threading ;
1110using System . Threading . Tasks ;
@@ -17,15 +16,6 @@ namespace SendGrid.Helpers.Reliability
1716 /// </summary>
1817 public class RetryDelegatingHandler : DelegatingHandler
1918 {
20- private static readonly List < HttpStatusCode > RetriableServerErrorStatusCodes =
21- new List < HttpStatusCode > ( )
22- {
23- HttpStatusCode . InternalServerError ,
24- HttpStatusCode . BadGateway ,
25- HttpStatusCode . ServiceUnavailable ,
26- HttpStatusCode . GatewayTimeout ,
27- } ;
28-
2919 private readonly ReliabilitySettings settings ;
3020
3121 /// <summary>
@@ -69,7 +59,7 @@ protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage
6959 {
7060 responseMessage = await base . SendAsync ( request , cancellationToken ) . ConfigureAwait ( false ) ;
7161
72- ThrowHttpRequestExceptionIfResponseCodeCanBeRetried ( responseMessage ) ;
62+ this . ThrowHttpRequestExceptionIfResponseCodeCanBeRetried ( responseMessage ) ;
7363
7464 sent = true ;
7565 }
@@ -101,9 +91,9 @@ protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage
10191 return responseMessage ;
10292 }
10393
104- private static void ThrowHttpRequestExceptionIfResponseCodeCanBeRetried ( HttpResponseMessage responseMessage )
94+ private void ThrowHttpRequestExceptionIfResponseCodeCanBeRetried ( HttpResponseMessage responseMessage )
10595 {
106- if ( RetriableServerErrorStatusCodes . Contains ( responseMessage . StatusCode ) )
96+ if ( this . settings . RetriableServerErrorStatusCodes . Contains ( responseMessage . StatusCode ) )
10797 {
10898 throw new HttpRequestException ( string . Format ( "Http status code '{0}' indicates server error" , responseMessage . StatusCode ) ) ;
10999 }
0 commit comments