コード例 #1
0
        public override IEnumerable <Tuple <string, string> > GetSummaries(IFlowStepRequest request)
        {
            var property = request.GetType().GetProperty(_propertyName);

            var name = (string)property?.GetValue(request);

            return(new[] { new Tuple <string, string>(name, null), });
        }
コード例 #2
0
ファイル: CoreFlowLogger.cs プロジェクト: andybalham/FlowR
        public void LogFlowException(FlowContext flowContext, IFlowStepRequest flowRequest, Exception ex)
        {
            _logger.LogError(flowContext, ex,
                             "{ExceptionTypeName} occurred handling {RequestTypeName}({RequestSummary})",
                             ex.GetType().Name, flowRequest.GetType().Name, _logger?.EvalIfError(() => GetPublicPropertySummary(flowRequest)));

            _logger.LogError("{ExceptionType}: {ExceptionMessage}", ex.GetType().Name, ex.Message);
            _logger.LogError("{ExceptionStackTrace}", ex.StackTrace);
        }
コード例 #3
0
        private void SetFlowDiagramNodeInputSummaries(FlowStep flowStep, IFlowStepRequest request, FlowDiagramNode node)
        {
            var setInputs      = new Dictionary <string, string>();
            var boundInputs    = new Dictionary <string, string>();
            var inputOverrides = new Dictionary <string, IList <FlowInputOverride> >();

            var requestType = request.GetType().GetFlowObjectType();

            foreach (var requestProperty in requestType.Properties)
            {
                var isSetInput = flowStep.Definition.Setters.Any(s => s.Item1.Name == requestProperty.Name);

                if (isSetInput)
                {
                    setInputs[requestProperty.PropertyInfo.Name] = requestProperty.PropertyInfo.GetValue(request)?.ToString();
                }
                else
                {
                    var binding = flowStep.Definition.GetInputBinding(requestProperty);
                    var summary = binding.GetSummary(request);

                    boundInputs[requestProperty.PropertyInfo.Name] = summary;
                }
            }

            if (!string.IsNullOrEmpty(flowStep.OverrideKey?.Value))
            {
                var flowRequestOverrides = _overrideProvider?.GetRequestOverrides(flowStep.OverrideKey?.Value);

                if (flowRequestOverrides != null)
                {
                    foreach (var flowRequestOverride in flowRequestOverrides)
                    {
                        var inputOverride = new FlowInputOverride
                        {
                            Value    = flowRequestOverride.Value?.ToString(),
                            Criteria = flowRequestOverride.Criteria
                        };

                        if (inputOverrides.TryGetValue(flowRequestOverride.Name, out var propertyInputOverrides))
                        {
                            propertyInputOverrides.Add(inputOverride);
                        }
                        else
                        {
                            inputOverrides.Add(flowRequestOverride.Name, new List <FlowInputOverride>(new[] { inputOverride }));
                        }
                    }
                }
            }

            node.InputSetters   = setInputs;
            node.InputBindings  = boundInputs;
            node.InputOverrides = inputOverrides;
        }
コード例 #4
0
ファイル: CoreFlowLogger.cs プロジェクト: andybalham/FlowR
 public void LogDecisionRequest(FlowContext flowContext, IFlowStepRequest decisionRequest)
 {
     _logger.LogDebug(flowContext, "{DecisionRequestTypeName}({DecisionRequestSummary})",
                      _logger.EvalIfDebug(() => decisionRequest.GetType().Name),
                      _logger.EvalIfDebug(() => GetPublicPropertySummary(decisionRequest)));
 }
コード例 #5
0
ファイル: CoreFlowLogger.cs プロジェクト: andybalham/FlowR
 public void LogActivityRequest(FlowContext flowContext, IFlowStepRequest activityRequest)
 {
     _logger.LogDebug(flowContext, "{ActivityRequestTypeName}({ActivityRequestSummary})",
                      _logger.EvalIfDebug(() => activityRequest.GetType().Name),
                      _logger.EvalIfDebug(() => GetPublicPropertySummary(activityRequest)));
 }
コード例 #6
0
ファイル: CoreFlowLogger.cs プロジェクト: andybalham/FlowR
 public void LogFlowOverride(FlowContext flowContext, IFlowStepRequest flowRequest, string criteria)
 {
     _logger.LogDebug(flowContext, "Flow definition for {FlowRequestTypeName} overridden for criteria '{Criteria}'",
                      _logger.EvalIfDebug(() => flowRequest.GetType().Name),
                      criteria);
 }
コード例 #7
0
ファイル: CoreFlowLogger.cs プロジェクト: andybalham/FlowR
 public void LogRequestOverrides(FlowContext flowContext, IFlowStepRequest request, List <Tuple <string, object, string> > overrides)
 {
     _logger.LogDebug(flowContext, "{RequestTypeName} overridden as {OverrideSummary}",
                      request.GetType().Name, _logger?.EvalIfDebug(() => GetRequestOverrideSummary(overrides)));
 }