Beispiel #1
0
        public ShimItem CreateFakeItem(ShimItem parentItem, string name, Action <ShimItem, ShimTemplateItem, List <ShimField> > onItemCreating)
        {
            var id = ID.NewID;

            var item = new ShimItem()
            {
                IDGet          = () => id,
                KeyGet         = () => name.ToLower(),
                NameGet        = () => name,
                HasChildrenGet = () => false,
                ParentGet      = () => parentItem,
                PathsGet       = () =>
                {
                    var path = (parentItem != null ? parentItem.Instance.Paths.Path : "") + "/" + name;

                    return(new ShimItemPath()
                    {
                        PathGet = () => path,
                        FullPathGet = () => path,
                    });
                },
                LanguageGet = () => ContextLanguage,
                VersionsGet = () => new ShimItemVersions()
                {
                    CountGet = () => { return(1); }
                }
            };

            //Bind item to parent item
            if (parentItem != null)
            {
                var children = parentItem.Instance.HasChildren ? parentItem.Instance.Children.ToList() : new List <Item>();
                children.Add(item);

                parentItem.HasChildrenGet = () => true;
                parentItem.ChildrenGet    = () => new ChildList(parentItem.Instance, children);
                parentItem.GetChildren    = () => parentItem.Instance.Children;
            }

            var templateItem = new ShimTemplateItem();
            var fields       = new List <ShimField>();

            onItemCreating(item, templateItem, fields);

            item.TemplateGet = () => templateItem;
            item.FieldsGet   = () => CreateFakeFieldCollection(item, fields);

            return(item);
        }
        public ShimItem CreateFakeItem(ShimItem parentItem, string name, Action<ShimItem, ShimTemplateItem, List<ShimField>> onItemCreating)
        {
            var id = ID.NewID;

            var item = new ShimItem()
            {
                IDGet = () => id,
                KeyGet = () => name.ToLower(),
                NameGet = () => name,
                HasChildrenGet = () => false,
                ParentGet = () => parentItem,
                PathsGet = () =>
                {
                    var path = (parentItem != null ? parentItem.Instance.Paths.Path : "") + "/" + name;

                    return new ShimItemPath()
                    {
                        PathGet = () => path,
                        FullPathGet = () => path,
                    };
                },
                LanguageGet = () => ContextLanguage,
                VersionsGet = () => new ShimItemVersions() { CountGet = () => { return 1; } }
            };

            //Bind item to parent item
            if (parentItem != null)
            {
                var children = parentItem.Instance.HasChildren ? parentItem.Instance.Children.ToList() : new List<Item>();
                children.Add(item);

                parentItem.HasChildrenGet = () => true;
                parentItem.ChildrenGet = () => new ChildList(parentItem.Instance, children);
                parentItem.GetChildren = () => parentItem.Instance.Children;
            }

            var templateItem = new ShimTemplateItem();
            var fields = new List<ShimField>();

            onItemCreating(item, templateItem, fields);

            item.TemplateGet = () => templateItem;
            item.FieldsGet = () => CreateFakeFieldCollection(item, fields);

            return item;
        }