Пример #1
0
        public static List <Item> GetItemsByTemplate(Item parentItem, ID templateID, bool checkBaseTemplates = false)
        {
            List <Item> objList = new List <Item>();

            if (parentItem != null && ScHelpers.IsValidID(templateID))
            {
                List <ID>    idList       = new List <ID>();
                TemplateItem templateItem = (TemplateItem)ScHelpers.Databases.masterDb.GetItem(templateID);
                objList = !checkBaseTemplates ? ((IEnumerable <Item>)parentItem.Axes.GetDescendants()).Where <Item>((Func <Item, bool>)(x => x.TemplateID == templateID)).ToList <Item>() : ((IEnumerable <Item>)parentItem.Axes.GetDescendants()).Where <Item>((Func <Item, bool>)(x =>
                {
                    if (x.TemplateID == templateID)
                    {
                        return(true);
                    }
                    return(x.Template != null && ((IEnumerable <TemplateItem>)x.Template.BaseTemplates).Any <TemplateItem>((Func <TemplateItem, bool>)(b => b.ID == templateID)));
                })).ToList <Item>();
            }
            return(objList);
        }