Ejemplo n.º 1
0
        private T ReplaceConstants <T>(XElement root, string attributeName)
        {
            var value = root.GetAttributeValue <string>(attributeName);

            value = ReplaceConstants(value);

            return(DataConversion.Convert <T>(value));
        }
Ejemplo n.º 2
0
        private bool TryCreateBehaviour(XElement root, IOptionValue optionValue, out OptionBehaviour optionBehaviour)
        {
            string name = root.Name.LocalName;

            optionBehaviour = null;

            switch (name)
            {
            case RangedMinMaxElement.ElementName:
            {
                string min = ReplaceConstants <string>(root, RangedMinMaxElement.Attrs.Min);
                string max = ReplaceConstants <string>(root, RangedMinMaxElement.Attrs.Max);
                optionBehaviour = new RangedOptionBehaviour(optionValue, min, max);
            }
            break;

            case RangedMaxElement.ElementName:
            {
                string max = ReplaceConstants <string>(root, RangedMaxElement.Attrs.Max);
                optionBehaviour = new RangedOptionBehaviour(optionValue, max, false);
            }
            break;

            case RangedMinElement.ElementName:
            {
                string min = ReplaceConstants <string>(root, RangedMinElement.Attrs.Min);
                optionBehaviour = new RangedOptionBehaviour(optionValue, min, true);
            }
            break;

            case FixedListElement.ElementName:
                optionBehaviour = CreateFixedListBehaviour(root, optionValue);
                break;

            case FlagListElement.ElementName:
                optionBehaviour = CreateFlagListBehaviour(root, optionValue);
                break;

            case MultiListElement.ElementName:
            {
                bool   sorted    = DataConversion.Convert <bool>(ReplaceConstants(root.TryGetAttributeValue(MultiListElement.Attrs.Sorted, MultiListElement.Attrs.Defaults.Sorted).ToString()));
                string separator = ReplaceConstants(root.TryGetAttributeValue(MultiListElement.Attrs.Separator, MultiListElement.Attrs.Defaults.Separator));
                optionBehaviour = CreateMultiListBehaviour(root, optionValue, sorted, separator);
            }
            break;

            case SqlFixedListElement.ElementName:
            {
                string query                 = ReplaceConstants <string>(root, SqlFixedListElement.Attrs.Query);
                string valueFieldName        = ReplaceConstants(root.TryGetAttributeValue(SqlFixedListElement.Attrs.ValueFieldName, SqlFixedListElement.Attrs.Defaults.ValueFieldName));
                string displayValueFieldName = ReplaceConstants(root.TryGetAttributeValue(SqlFixedListElement.Attrs.DisplayValueFieldName, SqlFixedListElement.Attrs.Defaults.DisplayValueFieldName));
                optionBehaviour = new SqlFixedListOptionBehaviour(optionValue, query, valueFieldName, displayValueFieldName);
            }
            break;

            case SqlFlagListElement.ElementName:
            {
                string query                 = ReplaceConstants <string>(root, SqlFlagListElement.Attrs.Query);
                string valueFieldName        = ReplaceConstants(root.TryGetAttributeValue(SqlFlagListElement.Attrs.ValueFieldName, SqlFlagListElement.Attrs.Defaults.ValueFieldName));
                string displayValueFieldName = ReplaceConstants(root.TryGetAttributeValue(SqlFlagListElement.Attrs.DisplayValueFieldName, SqlFlagListElement.Attrs.Defaults.DisplayValueFieldName));
                optionBehaviour = new SqlFlagListOptionBehaviour(optionValue, query, valueFieldName, displayValueFieldName);
            }
            break;

            case SqlMultiListElement.ElementName:
            {
                string query                 = ReplaceConstants <string>(root, SqlMultiListElement.Attrs.Query);
                bool   sorted                = DataConversion.Convert <bool>(ReplaceConstants(root.TryGetAttributeValue(SqlMultiListElement.Attrs.Sorted, SqlMultiListElement.Attrs.Defaults.Sorted).ToString()));
                string separator             = ReplaceConstants(root.TryGetAttributeValue(SqlMultiListElement.Attrs.Separator, SqlMultiListElement.Attrs.Defaults.Separator));
                string valueFieldName        = ReplaceConstants(root.TryGetAttributeValue(SqlMultiListElement.Attrs.ValueFieldName, SqlMultiListElement.Attrs.Defaults.ValueFieldName));
                string displayValueFieldName = ReplaceConstants(root.TryGetAttributeValue(SqlMultiListElement.Attrs.DisplayValueFieldName, SqlMultiListElement.Attrs.Defaults.DisplayValueFieldName));
                optionBehaviour = new SqlMultiListOptionBehaviour(optionValue, query, sorted, separator, valueFieldName, displayValueFieldName);
            }
            break;
            }

            return(optionBehaviour != null);
        }
Ejemplo n.º 3
0
 public T GetValue(string value)
 {
     return(DataConversion.Convert <T>(value));
 }