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