public IEnumerable <BaseScore> ReadChildren(BaseScore parent) { if (parent != null && parent.IsVirtualFolder() && !parent.IsVirtualResolved()) { IList <BaseScore> scores = parent.GetVirtualScores(this.Parameters); parent.SetVirtualResolved(); this.Scores.Items = this.Scores.Items.Concat(scores).ToArray(); return(scores); } else { string id = parent == null ? "" : parent.Id; return(this.Scores.Items.Where(score => score.enable && score.Parent == id)); } }