Ejemplo n.º 1
0
        public static Rule CreateRule(RuleTypeEnum ruleType)
        {
            Rule rule = null;

            switch (ruleType)
            {
            case RuleTypeEnum.MAX_LENGTH_RULE:
                rule = new MaxLengthRule();
                break;

            case RuleTypeEnum.MIN_LENGTH_RULE:
                rule = new MinLengthRule();
                break;

            case RuleTypeEnum.MAX_VALUE_RULE:
                rule = new MaxValueRule();
                break;

            case RuleTypeEnum.MIN_VALUE_RULE:
                rule = new MinValueRule();
                break;

            case RuleTypeEnum.MAX_INPUT_NUM_RULE:
                rule = new MaxInputNumRule();
                break;

            case RuleTypeEnum.MIN_INPUT_NUM_RULE:
                rule = new MinInputNumRule();
                break;

            case RuleTypeEnum.VALUE_TYPE_RULE:
                rule = new ValueTypeRule();
                break;

            case RuleTypeEnum.REQUIRED_RULE:
                rule = new RequiredRule();
                break;

            case RuleTypeEnum.DISABLE_RULE:
                rule = new DisableRule();
                break;

            case RuleTypeEnum.MAX_DECIMAL_DIGITS_RULE:
                rule = new MaxDecimalDigitsRule();
                break;

            case RuleTypeEnum.MIN_DECIMAL_DIGITS_RULE:
                rule = new MinDecimalDigitsRule();
                break;

            case RuleTypeEnum.REGEX_RULE:
                rule = new RegexRule();
                break;

            case RuleTypeEnum.SET_RULE:
                rule = new SetRule();
                break;

            case RuleTypeEnum.TIP_RULE:
                rule = new TipRule();
                break;

            case RuleTypeEnum.DEV_TIP_RULE:
                rule = new DevTipRule();
                break;

            case RuleTypeEnum.READ_ONLY_RULE:
                rule = new ReadOnlyRule();
                break;

            case RuleTypeEnum.MAX_TARGET_SIZE_RULE:
                rule = new MaxTargetSizeRule();
                break;

            case RuleTypeEnum.MIN_TARGET_SIZE_RULE:
                rule = new MinTargetSizeRule();
                break;

            case RuleTypeEnum.MAX_IMAGE_SIZE_RULE:
                rule = new MaxImageSizeRule();
                break;

            case RuleTypeEnum.MIN_IMAGE_SIZE_RULE:
                rule = new MinImageSizeRule();
                break;
            }
            return(rule);
        }
Ejemplo n.º 2
0
        /**
         * xml Element to Rule
         * @param ruleEle
         * @param fieldId
         * @return
         * @throws TopSchemaException
         */
        private static Rule ElementToRule(XmlElement ruleEle, string fieldId)
        {
            if (ruleEle == null)
            {
                return(null);
            }
            String ruleName = XmlUtils.GetAttributeValue(ruleEle, "name");

            if (StringUtil.IsEmpty(ruleName))
            {
                throw new TopSchemaException(TopSchemaErrorCodeEnum.ERROR_CODE_31001, fieldId);
            }
            String ruleValue = XmlUtils.GetAttributeValue(ruleEle, "value");

            if (StringUtil.IsEmpty(ruleValue))
            {
                throw new TopSchemaException(TopSchemaErrorCodeEnum.ERROR_CODE_31002, fieldId);
            }

            Rule         rule     = null;
            RuleTypeEnum ruleEnum = RuleTypeEnumHelper.GetEnum(ruleName);

            if (ruleEnum != RuleTypeEnum.UNKNOWN)
            {
                rule = SchemaFactory.CreateRule(ruleEnum);
            }
            else
            {
                rule = SchemaFactory.CreateCustomRule(ruleName, ruleValue);
            }

            if (ruleName.Equals(RuleTypeEnumHelper.ToType(RuleTypeEnum.TIP_RULE)) && !StringUtil.IsEmpty(ruleValue))
            {
                String url = XmlUtils.GetAttributeValue(ruleEle, "url");
                ((TipRule)rule).Url = url;
            }
            if (ruleName.Equals(RuleTypeEnumHelper.ToType(RuleTypeEnum.DEV_TIP_RULE)) && !StringUtil.IsEmpty(ruleValue))
            {
                String url = XmlUtils.GetAttributeValue(ruleEle, "url");
                ((DevTipRule)rule).Url = url;
            }

            String unit = XmlUtils.GetAttributeValue(ruleEle, "unit");

            if (ruleName.Equals(RuleTypeEnumHelper.ToType(RuleTypeEnum.MAX_TARGET_SIZE_RULE)) &&
                !StringUtil.IsEmpty(ruleValue))
            {
                MaxTargetSizeRule mtsRule = (MaxTargetSizeRule)rule;
                mtsRule.Unit = unit;
            }
            else if (ruleName.Equals(RuleTypeEnumHelper.ToType(RuleTypeEnum.MIN_TARGET_SIZE_RULE)) &&
                     !StringUtil.IsEmpty(ruleValue))
            {
                MinTargetSizeRule misRule = (MinTargetSizeRule)rule;
                misRule.Unit = unit;
            }

            String exProperty = XmlUtils.GetAttributeValue(ruleEle, "exProperty");

            if (!StringUtil.IsEmpty(exProperty))
            {
                rule.ExProperty = exProperty;
            }
            rule.Value = ruleValue;
            XmlElement  dependGroupEle = XmlUtils.GetChildElement(ruleEle, "depend-group");
            DependGroup dependGroup    = ElementToDependGroup(dependGroupEle, fieldId);

            rule.DependGroup = dependGroup;
            return(rule);
        }