private dynamic EvaluateLeft(IRelationalLogicNode node) { var left = node.LeftExpression.ToDomainItem(m_domainItemLocator); dynamic dl = left; return(Evaluate(dl)); }
private dynamic EvaluateRight(IRelationalLogicNode node) { var right = node.RightExpression.ToDomainItem(m_domainItemLocator); dynamic dr = right; return(Evaluate(dr)); }
private ValidationMetaData IncompatableOperationError( IRelationalLogicNode untypedOperator, string leftName, string rightName) { var type = m_variableService.GetQuestionType(leftName); var displayType = type.GetTypeDisplay(); return(new UnkownTypeExpressionValidationMetaData { Message = $@"The expression '{untypedOperator.Definition}' contains the {displayType} variables " + $@"'{leftName}' and '{rightName}'. A {displayType} can only be compared for equality.", Source = m_domainItemLocator.GetRef <IRelationalLogicNode>(untypedOperator.Id) }); }
private ValidationMetaData IncompatibleTypeError(string leftName, string rightName, IRelationalLogicNode untypedOperator) { var leftType = m_variableService.GetQuestionType(leftName); var rightType = m_variableService.GetQuestionType(rightName); var leftTypeText = leftType.GetTypeDisplay(); var rightTypeText = rightType.GetTypeDisplay(); return(new UnkownTypeExpressionValidationMetaData { Message = $@"The expression '{untypedOperator.Definition}' contains the {leftTypeText} variable " + $@"'{leftName}' and {rightTypeText} variable '{rightName}'. The types {leftTypeText} " + $@"and {rightTypeText} cannot be compared.", Source = m_domainItemLocator.GetRef <IRelationalLogicNode>(untypedOperator.Id) }); }
public bool IsValidOperation(IRelationalLogicNode operation) { return(true); }
public bool IsValidOperation(IRelationalLogicNode operation) { return(operation is IEqualityNode || operation is IInequalityNode); }