Ejemplo n.º 1
0
        private void AddManifestItem(IBundleSupport support, object data)
        {
            IBundleItem item = support.GetBundleItem(data);

            if (!_context.Manifest.ContainsItem(item.ItemId))
            {
                IBundleItem parent = null;

                while (parent == null)
                {
                    IBundleItem contextItem = support.GetContextItem(item);

                    if (contextItem != null)
                    {
                        if (_context.Manifest.ContainsItem(contextItem.ItemId))
                        {
                            parent = _context.Manifest.GetItem(contextItem.ItemId);
                        }
                        else
                        {
                            if (contextItem.Model != item.Model)
                            {
                                support = contextItem.Model.GetModelService<IBundleSupport>();
                            }

                            contextItem.Children.Add(item);
                            item.Parent = contextItem;
                            item = contextItem;
                        }
                    }
                    else
                    {
                        parent = _context.Manifest.ItemHierarchy;
                    }
                }

                _context.Manifest.AddItemToHierarchy(item, parent);
            }
        }