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), }); }
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); }
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; }
public void LogDecisionRequest(FlowContext flowContext, IFlowStepRequest decisionRequest) { _logger.LogDebug(flowContext, "{DecisionRequestTypeName}({DecisionRequestSummary})", _logger.EvalIfDebug(() => decisionRequest.GetType().Name), _logger.EvalIfDebug(() => GetPublicPropertySummary(decisionRequest))); }
public void LogActivityRequest(FlowContext flowContext, IFlowStepRequest activityRequest) { _logger.LogDebug(flowContext, "{ActivityRequestTypeName}({ActivityRequestSummary})", _logger.EvalIfDebug(() => activityRequest.GetType().Name), _logger.EvalIfDebug(() => GetPublicPropertySummary(activityRequest))); }
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); }
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))); }