Exemple #1
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));
            }
        }