Пример #1
0
        private static ExtensionProviderCollection GenerateChildExtensionProvider(XmlNodeList childNodes, Extension extension, string extensionPoint)
        {
            ExtensionProviderCollection extensionProviders = new ExtensionProviderCollection();

            foreach (XmlNode xmlNode in childNodes)
            {
                if (xmlNode is XmlComment)
                {
                    continue;
                }

                NameValueCollection attributesCollection = new NameValueCollection();
                foreach (XmlAttribute attr in xmlNode.Attributes)
                {
                    attributesCollection.Add(attr.Name, attr.Value);
                }

                ExtensionProvider extensionProvider = new ExtensionProvider {
                    ExtensionPoint = extensionPoint, AttributesCollection = attributesCollection, Bundle = extension.Owner, ChildExtensionProvider = GenerateChildExtensionProvider(xmlNode.ChildNodes, extension, extensionPoint)
                };
                extensionProviders.AddExtensionProvider(extensionProvider);
            }

            return(extensionProviders);
        }
Пример #2
0
        private void HandleBootstrapLayoutExtensions(string extensionPoint = null)
        {
            if (_bundle.Context != null)
            {
                List <Extension> extensions = new List <Extension>();

                if (string.IsNullOrEmpty(extensionPoint))
                {
                    ExtensionProviders.Clear();

                    foreach (var extPoint in _bundle.Context.GetExtensionPoints())
                    {
                        extensions.AddRange(_bundle.Context.GetExtensions(extPoint.Point));
                    }
                }
                else
                {
                    if (ExtensionProviders.ContainsKey(extensionPoint))
                    {
                        ExtensionProviders[extensionPoint].Clear();
                    }

                    extensions = _bundle.Context.GetExtensions(extensionPoint);
                }

                foreach (var extension in extensions)
                {
                    ExtensionProvider.BuildBootstrapLayout(extension, ExtensionProviders);
                }
            }
        }
Пример #3
0
        public static void BuildBootstrapLayout(Extension extension, ExtensionProviderCollection extensionProviders)
        {
            foreach (var xmlNode in extension.Data)
            {
                if (xmlNode is XmlComment)
                {
                    continue;
                }

                NameValueCollection attributesCollection = new NameValueCollection();
                foreach (XmlAttribute attr in xmlNode.Attributes)
                {
                    attributesCollection.Add(attr.Name, attr.Value);
                }

                var extensionPoint = xmlNode.ParentNode.FirstChild.ParentNode.Attributes["Point"].Value;
                ExtensionProvider extensionProvider = new ExtensionProvider {
                    ExtensionPoint = extensionPoint, AttributesCollection = attributesCollection, Bundle = extension.Owner, ChildExtensionProvider = GenerateChildExtensionProvider(xmlNode.ChildNodes, extension, extensionPoint)
                };
                extensionProviders.AddExtensionProvider(extensionProvider);
            }
        }