private void RecurseAggregates(ExpressionInfo info, XmlNode nodeExpression, string sDataSetUsedByParent) { DataAggregateInfoList lst = new DataAggregateInfoList(); if (info.RunningValues != null) { foreach (RunningValueInfo rvi in info.RunningValues) { lst.Add(rvi); } } if (info.Aggregates != null) { foreach (DataAggregateInfo agg in info.Aggregates) { lst.Add(agg); } } foreach (DataAggregateInfo agg in lst) { if (agg.Scope != null && string.Compare(sDataSetUsedByParent, agg.Scope, true) != 0 && _dataSets.ContainsKey(agg.Scope)) { _dataSets[agg.Scope].Usages.Add(GetPathForXmlNode(nodeExpression)); } if (agg.Expressions != null) { foreach (ExpressionInfo aggSubExpression in agg.Expressions) { RecurseExpressionInfo(aggSubExpression, nodeExpression, sDataSetUsedByParent); } } } }