public void ResolveReferences(Dictionary <Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.ObjectType, List <MemberReference> > memberReferencesCollection, Dictionary <int, IReferenceable> referenceableItems) { if (!memberReferencesCollection.TryGetValue(m_Declaration.ObjectType, out List <MemberReference> value)) { return; } foreach (MemberReference item in value) { switch (item.MemberName) { case MemberName.DataSet: Global.Tracer.Assert(referenceableItems.ContainsKey(item.RefID)); Global.Tracer.Assert(referenceableItems[item.RefID] is DataSet); Global.Tracer.Assert(m_dataSet != (DataSet)referenceableItems[item.RefID]); m_dataSet = (DataSet)referenceableItems[item.RefID]; break; case MemberName.SortTarget: Global.Tracer.Assert(referenceableItems.ContainsKey(item.RefID)); Global.Tracer.Assert(referenceableItems[item.RefID] is ISortFilterScope); Global.Tracer.Assert(m_sortTarget != (ISortFilterScope)referenceableItems[item.RefID]); m_sortTarget = (ISortFilterScope)referenceableItems[item.RefID]; break; case MemberName.DetailScopeSubReports: if (m_detailScopeSubReports == null) { m_detailScopeSubReports = new List <SubReport>(); } Global.Tracer.Assert(referenceableItems.ContainsKey(item.RefID)); Global.Tracer.Assert(referenceableItems[item.RefID] is SubReport); Global.Tracer.Assert(!m_detailScopeSubReports.Contains((SubReport)referenceableItems[item.RefID])); m_detailScopeSubReports.Add((SubReport)referenceableItems[item.RefID]); break; case MemberName.SortExpressionScope: Global.Tracer.Assert(referenceableItems.ContainsKey(item.RefID)); Global.Tracer.Assert(referenceableItems[item.RefID] is ISortFilterScope); Global.Tracer.Assert(m_sortExpressionScope != (ISortFilterScope)referenceableItems[item.RefID]); m_sortExpressionScope = (ISortFilterScope)referenceableItems[item.RefID]; break; case MemberName.GroupsInSortTarget: if (m_groupsInSortTarget == null) { m_groupsInSortTarget = new GroupingList(); } Global.Tracer.Assert(referenceableItems.ContainsKey(item.RefID)); Global.Tracer.Assert(referenceableItems[item.RefID] is Grouping); Global.Tracer.Assert(!m_groupsInSortTarget.Contains((Grouping)referenceableItems[item.RefID])); m_groupsInSortTarget.Add((Grouping)referenceableItems[item.RefID]); break; default: Global.Tracer.Assert(condition: false); break; } } }
public override void ResolveReferences(Dictionary <Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.ObjectType, List <MemberReference> > memberReferencesCollection, Dictionary <int, IReferenceable> referenceableItems) { base.ResolveReferences(memberReferencesCollection, referenceableItems); if (!memberReferencesCollection.TryGetValue(m_Declaration.ObjectType, out List <MemberReference> value)) { return; } foreach (MemberReference item in value) { switch (item.MemberName) { case MemberName.ContainingScopes: if (m_containingScopes == null) { m_containingScopes = new GroupingList(); } if (item.RefID != -2) { Global.Tracer.Assert(referenceableItems.ContainsKey(item.RefID)); Global.Tracer.Assert(referenceableItems[item.RefID] is Grouping); Global.Tracer.Assert(!m_containingScopes.Contains((Grouping)referenceableItems[item.RefID])); m_containingScopes.Add((Grouping)referenceableItems[item.RefID]); } else { m_containingScopes.Add(null); } break; case MemberName.RecursiveMember: { if (referenceableItems.TryGetValue(item.RefID, out IReferenceable value2)) { m_recursiveMember = (value2 as TablixMember); } break; } default: Global.Tracer.Assert(condition: false); break; } } }