public void InsertAggregateIndicatorJoinCondition(Field field, int fieldIndex, Field aggregateIndicatorField, int aggregateIndicatorFieldIndex, InitializationContext context) { int num = -1; if (base.m_joinConditions != null) { for (int i = 0; i < base.m_joinConditions.Count; i++) { JoinCondition joinCondition = base.m_joinConditions[i]; if (joinCondition.ForeignKeyExpression.Type == ExpressionInfo.Types.Field) { if (joinCondition.ForeignKeyExpression.FieldIndex == fieldIndex) { num = i; } else if (joinCondition.ForeignKeyExpression.FieldIndex == aggregateIndicatorFieldIndex) { return; } } } } bool flag = num == -1; string text = this.FindRelatedAggregateIndicatorFieldName(field); if (text != null) { ExpressionInfo primaryKey = ExpressionInfo.CreateConstExpression(flag); ExpressionInfo expressionInfo = new ExpressionInfo(); expressionInfo.SetAsSimpleFieldReference(text); JoinCondition joinCondition2 = new JoinCondition(expressionInfo, primaryKey, SortDirection.Ascending); joinCondition2.Initialize(base.m_relatedDataSet, base.m_naturalJoin, context); if (flag) { base.AddJoinCondition(joinCondition2); } else { base.m_joinConditions.Insert(num, joinCondition2); } } }