示例#1
0
        public async Task <bool> IsServiceHealthy(CancellationToken cancellationToken)
        {
            var isHealthy = false;
            var api       = await _restApiProvider.GetServiceHealthEndpointAsync();

            await _restClient.SendAsync(api, HttpMethod.Get, _productInfo, handleExpectedResponse : response =>
            {
                switch (response.StatusCode)
                {
                case HttpStatusCode.OK:
                    isHealthy = true;
                    return(true);

                case HttpStatusCode.BadGateway:
                    isHealthy = false;
                    return(true);

                case HttpStatusCode.ServiceUnavailable:
                    isHealthy = false;
                    return(true);

                default:
                    return(false);
                }
            },
                                        cancellationToken : cancellationToken);

            return(isHealthy);
        }