コード例 #1
0
        private dynamic EvaluateLeft(IRelationalLogicNode node)
        {
            var     left = node.LeftExpression.ToDomainItem(m_domainItemLocator);
            dynamic dl   = left;

            return(Evaluate(dl));
        }
コード例 #2
0
        private dynamic EvaluateRight(IRelationalLogicNode node)
        {
            var     right = node.RightExpression.ToDomainItem(m_domainItemLocator);
            dynamic dr    = right;

            return(Evaluate(dr));
        }
コード例 #3
0
        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)
            });
        }
コード例 #4
0
        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)
            });
        }
コード例 #5
0
 public bool IsValidOperation(IRelationalLogicNode operation)
 {
     return(true);
 }
コード例 #6
0
 public bool IsValidOperation(IRelationalLogicNode operation)
 {
     return(operation is IEqualityNode || operation is IInequalityNode);
 }