public async Task <HealthCheckResult> CheckHealthAsync(HealthCheckContext context, CancellationToken cancellationToken = new CancellationToken())
        {
            var databaseHealthCheckRequest = new DatabaseHealthCheckRequest("HEALTH_CHECK");

            var operation = await _mediator.Send(databaseHealthCheckRequest, cancellationToken);

            if (operation.Status)
            {
                return(HealthCheckResult.Healthy());
            }

            var errorData = operation.Validation.Errors.ToDictionary(x => x.ErrorCode, x => (object)x.ErrorMessage);

            return(HealthCheckResult.Unhealthy("Accessing product data", data: errorData));
        }
        public async Task <Result <GetProductResponse> > Handle(DatabaseHealthCheckRequest request, CancellationToken cancellationToken)
        {
            var query     = new GetProductByCodeQuery(request.CorrelationId, "BLAHBLAH");
            var operation = await _mediator.Send(query, cancellationToken);

            if (!operation.Status)
            {
                return(Result <GetProductResponse> .Failure(operation.ErrorCode, operation.Validation));
            }

            var getProductResponse = new GetProductResponse
            {
                ProductCode = "HEALTH_CHECK",
                ProductName = "HEATH_CHECK"
            };

            return(Result <GetProductResponse> .Success(getProductResponse));
        }