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; }