public PatternSet(IReadOnlyDictionary <string, ContentPropertyDefinition> properties, IEnumerable <PatternDefinition> groupPatterns, IEnumerable <PatternDefinition> pathPatterns)
 {
     GroupPatterns       = groupPatterns?.ToList()?.AsReadOnly() ?? Enumerable.Empty <PatternDefinition>();
     PathPatterns        = pathPatterns?.ToList()?.AsReadOnly() ?? Enumerable.Empty <PatternDefinition>();
     PropertyDefinitions = properties;
     GroupExpressions    = GroupPatterns.Select(pattern => new PatternExpression(pattern)).ToArray();
     PathExpressions     = PathPatterns.Select(pattern => new PatternExpression(pattern)).ToArray();
 }
 public DesignPatterns(string name, GroupPatterns group)
 {
     this.Id    = Guid.NewGuid();
     this.Name  = name;
     this.Group = group;
 }