Exemplo n.º 1
0
        private Option ParseOption(XElement root)
        {
            var option = new Option();

            option.Name         = CreateName(root, OptionElement.Attrs.Name);
            option.Id           = IdFactory.CreateId(option.Name);
            option.DisplayName  = ReplaceConstants(root.TryGetAttributeValue(OptionElement.Attrs.DisplayName, OptionElement.Attrs.Defaults.DisplayName));
            option.Description  = ReplaceConstants(root.TryGetAttributeValue(OptionElement.Attrs.Description, OptionElement.Attrs.Defaults.Description));
            option.DefaultValue = ReplaceConstants(root.TryGetAttributeValue <string>(OptionElement.Attrs.DefaultValue, null));
            option.ValueType    = root.TryGetAttributeValue(OptionElement.Attrs.ValueType, OptionElement.Attrs.Defaults.ValueType);
            var optionValue = _optionValueFactory.Create(option.ValueType);

            option.Behaviour = CreateBehaviour(root, optionValue);

            var defaultValueElement = root.Elements().FirstOrDefault(o => o.Name == OptionElement.Attrs.DefaultValue);

            if (defaultValueElement != null)
            {
                if (root.IsAttributeExists(OptionElement.Attrs.DefaultValue))
                {
                    _optionSetValidator.AddError($"Option '{option.Name}' has two defaultValue's.", root);
                }

                var dataElement = defaultValueElement.Elements().First();
                if (dataElement.NodeType != XmlNodeType.CDATA)
                {
                    _optionSetValidator.AddError("DefaultValue element doesn't contains CData.", dataElement);
                }

                option.DefaultValue = dataElement.Value.Trim();
            }

            return(option);
        }
Exemplo n.º 2
0
        private Option ParseOption(XElement root)
        {
            var option = new Option();

            option.Name         = root.GetAttributeValue <string>(OptionAttributeKeys.Name);
            option.DisplayName  = root.TryGetAttributeValue(OptionAttributeKeys.DisplayName, OptionAttributeDefaults.DisplayName);
            option.Description  = root.TryGetAttributeValue(OptionAttributeKeys.Description, OptionAttributeDefaults.Description);
            option.DefaultValue = root.TryGetAttributeValue(OptionAttributeKeys.DefaultValue, OptionAttributeDefaults.DefaultValue);
            option.ValueType    = root.TryGetAttributeValue(OptionAttributeKeys.ValueType, OptionAttributeDefaults.ValueType);
            var optionValue = _optionValueFactory.Create(option.ValueType);

            option.Behaviour = CreateBehaviour(root, optionValue);

            return(option);
        }