Exemple #1
0
        private FlowDefinition <TFlowRequest, TFlowResponse> ResolveFlowDefinition(TFlowRequest flowRequest, FlowContext flowContext)
        {
            var flowDefinitionOverrides =
                _overrideProvider?.GetFlowDefinitionOverrides(typeof(TFlowRequest))?.ToList();

            var applicableFlowDefinitionOverride =
                _overrideProvider?.GetApplicableFlowDefinitionOverride(flowDefinitionOverrides, flowRequest);

            FlowDefinition <TFlowRequest, TFlowResponse> flowDefinition;

            if (applicableFlowDefinitionOverride == null)
            {
                flowDefinition = GetFlowDefinitionInternal();
            }
            else
            {
                flowDefinition = (FlowDefinition <TFlowRequest, TFlowResponse>)applicableFlowDefinitionOverride;

                _logger?.LogFlowOverride(flowContext, flowRequest, applicableFlowDefinitionOverride.Criteria);
            }

            return(flowDefinition);
        }