Exemple #1
0
        public HttpResponseMessage HandleResponse(IOnPremiseConnectorRequest request, HttpRequestMessage message, IPrincipal clientUser, IOnPremiseConnectorResponse response)
        {
            if (_responseInterceptor == null)
            {
                return(null);
            }

            _logger?.Verbose("Handling response. request-id={RequestId}", request.RequestId);

            try
            {
                var interceptedRequest = CreateInterceptedRequest(request, message, clientUser);

                var immediateResponse = response == null?_responseInterceptor.OnResponseFailed(interceptedRequest) : _responseInterceptor.OnResponseReceived(interceptedRequest, new InterceptedResponse(response));

                if (immediateResponse != null)
                {
                    immediateResponse.RequestMessage = message;
                }

                return(immediateResponse);
            }
            catch (Exception ex)
            {
                _logger?.Error(ex, "Error while executing the response interceptor. type-name={InterceptorType}, request-id={RequestId}", _requestInceptor?.GetType().Name, request.RequestId);
                return(null);
            }
        }
        public HttpResponseMessage HandleResponse(IOnPremiseConnectorRequest request, HttpRequestMessage message, IPrincipal clientUser, IOnPremiseConnectorResponse response, bool forwardOnPremiseTargetErrorResponse)
        {
            if (_responseInterceptor == null)
            {
                return(_httpResponseMessageBuilder.BuildFromConnectorResponse(response, forwardOnPremiseTargetErrorResponse, request.RequestId));
            }

            _logger.Verbose("Handling response. request-id={RequestId}", request.RequestId);

            try
            {
                var interceptedRequest = CreateInterceptedRequest(request, message, clientUser);

                HttpResponseMessage immediateResponse = null;
                if (response == null)
                {
                    immediateResponse = _responseInterceptor.OnResponseFailed(interceptedRequest);
                }
                else
                {
                    var interceptedResponse = new InterceptedResponse(_logger.ForContext <IInterceptedResponse>(), response);
                    immediateResponse = _responseInterceptor.OnResponseReceived(interceptedRequest, interceptedResponse);

                    if (immediateResponse == null)
                    {
                        return(_httpResponseMessageBuilder.BuildFromConnectorResponse(interceptedResponse, forwardOnPremiseTargetErrorResponse, request.RequestId));
                    }
                }

                if (immediateResponse != null)
                {
                    immediateResponse.RequestMessage = message;
                }

                return(immediateResponse ?? _httpResponseMessageBuilder.BuildFromConnectorResponse(null, forwardOnPremiseTargetErrorResponse, request.RequestId));
            }
            catch (Exception ex)
            {
                _logger.Error(ex, "Error while executing the response interceptor. type-name={InterceptorType}, request-id={RequestId}", _requestInterceptor?.GetType().Name, request.RequestId);
                return(null);
            }
        }