Exemple #1
0
 public DescriptionTreeFactoryOption(DescriptionTreeFactory factory)
 {
     factory.EnsureNotNull(nameof(factory));
     //
     _factory = factory;
 }
Exemple #2
0
        public static DescriptionPackage Create(DescriptionPackageIdentity identity, Uri siteOrigin, IEnumerable <IDescription> descriptions, DescriptionTreeFactory treeFactory = default, bool ownsDescriptions = default)
        {
            identity = identity.EnsureNotNull(nameof(identity)).AsReadOnly().EnsureValid();
            siteOrigin.EnsureNotNull(nameof(siteOrigin));
            var locDescriptions = descriptions.EnsureNotNull(nameof(descriptions)).EnsureNoNullElements().Value;

            treeFactory.EnsureNotNull(nameof(treeFactory));
            //
            var package = default(DescriptionPackage);
            var tree    = default(IDescriptionTree);

            try {
                package = new DescriptionPackage()
                {
                    _identity = identity
                };
                package.SetSiteOrigin(siteOrigin);
                tree = (treeFactory ?? DescriptionTreeFactoryOption.Require())(rootNamespace : new Namespace(name : MetadataName.NewName()), ownsRootNamespace : true);
                foreach (var description in locDescriptions)
                {
                    tree.Children.AddComponent(component: new MetadataTreeNode(metadataElement: new EmbeddedMetadataTreeElement(embeddedMetadata: description, ownsEmbeddedMetadata: ownsDescriptions)));
                }
                package.WriteDA(location: ref package._tree, value: tree);
                tree.SetPackage(package);
                return(package);
            }
            catch (Exception exception) {
                DisposeMany(exception, tree, package);
                throw;
            }
        }