private static void SetDiagram(ExpressionSettings settings) { if (settings.Diagram == null && _container != null) { var diagramId = settings.DiagramId ?? settings.Name; settings.Diagram = _container.Diagrams.FirstOrDefault(d => d.Id == diagramId); } }
private static ExpressionDefinition Create(ExpressionSettings settings, Delegate expression, Dictionary <string, Type> sourceTypes) { // todo: walidacja expression (np sprawdzenie argumentow i rezultatu) return(new ExpressionDefinition { CompiledExpression = expression, SourceTypes = sourceTypes, ExpressionString = settings.CodeSample, Name = settings.Name, Description = settings.Description, Diagram = settings.Diagram }); }
private static void SetNameAndDescription(ExpressionSettings settings) { if (settings.Operator != null) { if (settings.Name == null) { settings.Name = settings.Operator.Name; } if (settings.Description == null) { settings.Description = settings.Operator.GetSummary(); } } }
public static ExpressionDefinition Create(Delegate @delegate, ExpressionSettings settings) { if (@delegate == null) { throw new ArgumentNullException("delegate"); } if (settings == null) { throw new ArgumentNullException("settings"); } SetNameAndDescription(settings); SetDiagram(settings); return(Create(settings, @delegate, @delegate.Method.GetParameters().ToDictionary(p => p.Name, p => p.ParameterType))); }
public static ExpressionDefinition Create(LambdaExpression expression, ExpressionSettings settings) { if (expression == null) { throw new ArgumentNullException("expression"); } if (settings == null) { throw new ArgumentNullException("settings"); } settings.Operator = settings.Operator ?? GetOperator(expression); SetNameAndDescription(settings); SetDiagram(settings); if (settings.CodeSample == null) { settings.CodeSample = expression.ToString(); } return(Create(settings, expression.Compile(), expression.Parameters.ToDictionary(p => p.Name, p => p.Type))); }