public virtual bool TryLookup(string name, PatternTable table, out object value)
        {
            if (name == null)
            {
                value = null;
                return(false);
            }

            if (FileExtensions?.Count > 0)
            {
                if (FileExtensionAllowSubFolders || !ContainsSlash(name))
                {
                    foreach (var fileExtension in FileExtensions)
                    {
                        if (name.EndsWith(fileExtension, StringComparison.OrdinalIgnoreCase))
                        {
                            value = name;
                            return(true);
                        }
                    }
                }
            }

            if (Parser != null)
            {
                value = Parser.Invoke(name, table);
                if (value != null)
                {
                    return(true);
                }
            }

            value = null;
            return(false);
        }
Пример #2
0
        public PatternDefinition(
            string pattern,
            PatternTable table,
            IEnumerable <KeyValuePair <string, object> > defaults)
        {
            Pattern = pattern;

            Table    = table;
            Defaults = defaults.ToDictionary(p => p.Key, p => p.Value);
        }
Пример #3
0
 public PatternDefinition(string pattern, PatternTable table)
     : this(pattern, table, Enumerable.Empty <KeyValuePair <string, object> >())
 {
 }