Exemple #1
0
        public override async Task <HttpResponseMessage> HandleRequest(HttpRequestMessage request, CancellationToken cancellationToken)
        {
            var queryParameters = request.GetQueryNameValuePairs().ToDictionary(kv => kv.Key, kv => kv.Value, StringComparer.OrdinalIgnoreCase);

            try
            {
                if (queryParameters.TryGetValue("check", out var check) && !string.IsNullOrWhiteSpace(check))
                {
                    var healthResult = await _hcService.GetHealthAsync(check, cancellationToken);

                    _hcConfig.Logger?.LogHealthCheck(healthResult, healthResult.Status, _hcConfig.LoggerProperties, check);
                    return(MakeResponse(healthResult, _hcConfig.GetStatusCode(healthResult.Status)));
                }

                var result = await _hcService.GetHealthAsync(cancellationToken);

                _hcConfig.Logger?.LogHealthCheck(result, result.OverAllStatus, _hcConfig.LoggerProperties);

                return(MakeResponse(result, _hcConfig.GetStatusCode(result.OverAllStatus)));
            }
            catch (NotFoundError error)
            {
                _hcConfig.Logger?.LogException(error, _hcConfig.LoggerProperties);
                return(MakeResponse(error.HttpErrorResponse, error.HttpErrorStatusCode));
            }
        }
Exemple #2
0
        public async override Task <HttpResponseMessage> HandleRequest(HttpRequestMessage request, CancellationToken cancellationToken)
        {
            var queryParameters = request.GetQueryNameValuePairs().ToDictionary(kv => kv.Key, kv => kv.Value, StringComparer.OrdinalIgnoreCase);

            try
            {
                if (queryParameters.TryGetValue("check", out var check) && !string.IsNullOrWhiteSpace(check))
                {
                    var healthResult = await _hcService.GetHealthAsync(check);

                    return(MakeResponse <HealthCheckResultExtended>(healthResult, _hcService.GetStatusCode(healthResult.Status)));
                }

                var result = await _hcService.GetHealthAsync(cancellationToken);

                return(MakeResponse <HealthCheckResponse>(result, _hcService.GetStatusCode(result.OverAllStatus)));
            }
            catch (NotFoundError error)
            {
                return(MakeResponse <Object>(error.HttpErrorResponse, error.HttpErrorStatusCode));
            }
        }
 public async Task <IActionResult> Get()
 {
     return(new JsonResult(await _service.GetHealthAsync()));
 }