public bool TryGetNewSortTarget(string scopeName, out AspNetCore.ReportingServices.ReportIntermediateFormat.ISortFilterScope target) { target = null; return(this.m_reportScopes.TryGetValue(scopeName, out target)); }
public bool PopulateRuntimeSortFilterEventInfo(OnDemandProcessingContext odpContext, AspNetCore.ReportingServices.ReportIntermediateFormat.DataSet myDataSet) { if (odpContext.TopLevelContext.UserSortFilterInfo != null && odpContext.TopLevelContext.UserSortFilterInfo.OdpSortInfo != null && odpContext.TopLevelContext.OldSortFilterEventInfo != null) { if (-1 != this.m_dataSetGlobalID) { return(false); } this.m_runtimeSortFilterInfo = null; EventInformation.OdpSortEventInfo odpSortInfo = odpContext.TopLevelContext.UserSortFilterInfo.OdpSortInfo; for (int i = 0; i < odpSortInfo.Count; i++) { string uniqueNameAt = odpSortInfo.GetUniqueNameAt(i); AspNetCore.ReportingServices.ReportIntermediateFormat.SortFilterEventInfo sortFilterEventInfo = odpContext.TopLevelContext.OldSortFilterEventInfo[uniqueNameAt]; if (sortFilterEventInfo != null && sortFilterEventInfo.EventSource.UserSort != null) { int num = sortFilterEventInfo.EventSource.UserSort.SubReportDataSetGlobalId; if (-1 == num) { num = sortFilterEventInfo.EventSource.UserSort.DataSet.GlobalID; } if (num == myDataSet.GlobalID) { if (this.m_runtimeSortFilterInfo == null) { this.m_runtimeSortFilterInfo = new List <IReference <RuntimeSortFilterEventInfo> >(); } RuntimeSortFilterEventInfo runtimeSortFilterEventInfo = new RuntimeSortFilterEventInfo(sortFilterEventInfo.EventSource, uniqueNameAt, odpSortInfo.GetSortDirectionAt(i), sortFilterEventInfo.EventSourceScopeInfo, odpContext, (this.m_currentContainingScope == null) ? 1 : this.m_currentContainingScope.Value().Depth); runtimeSortFilterEventInfo.SelfReference.UnPinValue(); this.m_runtimeSortFilterInfo.Add(runtimeSortFilterEventInfo.SelfReference); } } } if (this.m_runtimeSortFilterInfo != null) { int count = this.m_runtimeSortFilterInfo.Count; for (int j = 0; j < count; j++) { IReference <RuntimeSortFilterEventInfo> reference = this.m_runtimeSortFilterInfo[j]; using (reference.PinValue()) { RuntimeSortFilterEventInfo runtimeSortFilterEventInfo2 = reference.Value(); IInScopeEventSource eventSource = runtimeSortFilterEventInfo2.EventSource; AspNetCore.ReportingServices.ReportIntermediateFormat.ISortFilterScope sortExpressionScope = eventSource.UserSort.SortExpressionScope; if (sortExpressionScope != null) { sortExpressionScope.IsSortFilterExpressionScope = this.SetSortFilterInfo(sortExpressionScope.IsSortFilterExpressionScope, count, j); } AspNetCore.ReportingServices.ReportIntermediateFormat.ISortFilterScope sortTarget = eventSource.UserSort.SortTarget; if (sortTarget != null) { sortTarget.IsSortFilterTarget = this.SetSortFilterInfo(sortTarget.IsSortFilterTarget, count, j); } if (eventSource.ContainingScopes != null && 0 < eventSource.ContainingScopes.Count) { int num2 = 0; int num3 = 0; for (int k = 0; k < eventSource.ContainingScopes.Count; k++) { AspNetCore.ReportingServices.ReportIntermediateFormat.Grouping grouping = eventSource.ContainingScopes[k]; if (grouping == null || !grouping.IsDetail) { List <object> list = runtimeSortFilterEventInfo2.SortSourceScopeInfo[num2]; if (grouping != null) { if (grouping.SortFilterScopeInfo == null) { grouping.SortFilterScopeInfo = new List <object> [count]; for (int l = 0; l < count; l++) { grouping.SortFilterScopeInfo[l] = null; } grouping.SortFilterScopeIndex = new int[count]; for (int m = 0; m < count; m++) { grouping.SortFilterScopeIndex[m] = -1; } } grouping.SortFilterScopeInfo[j] = list; grouping.SortFilterScopeIndex[j] = num2; } else { List <AspNetCore.ReportingServices.ReportIntermediateFormat.SubReport> detailScopeSubReports = eventSource.UserSort.DetailScopeSubReports; AspNetCore.ReportingServices.ReportIntermediateFormat.ReportItem reportItem = (detailScopeSubReports == null || num3 >= detailScopeSubReports.Count) ? eventSource.Parent : detailScopeSubReports[num3++].Parent; while (reportItem != null && !reportItem.IsDataRegion) { reportItem = reportItem.Parent; } Global.Tracer.Assert(reportItem.IsDataRegion, "(parent.IsDataRegion)"); AspNetCore.ReportingServices.ReportIntermediateFormat.DataRegion dataRegion = (AspNetCore.ReportingServices.ReportIntermediateFormat.DataRegion)reportItem; if (dataRegion.SortFilterSourceDetailScopeInfo == null) { dataRegion.SortFilterSourceDetailScopeInfo = new int[count]; for (int n = 0; n < count; n++) { dataRegion.SortFilterSourceDetailScopeInfo[n] = -1; } } Global.Tracer.Assert(list != null && 1 == list.Count, "(null != scopeValues && 1 == scopeValues.Count)"); dataRegion.SortFilterSourceDetailScopeInfo[j] = (int)list[0]; } num2++; } } } AspNetCore.ReportingServices.ReportIntermediateFormat.GroupingList groupsInSortTarget = eventSource.UserSort.GroupsInSortTarget; if (groupsInSortTarget != null) { for (int num5 = 0; num5 < groupsInSortTarget.Count; num5++) { groupsInSortTarget[num5].NeedScopeInfoForSortFilterExpression = this.SetSortFilterInfo(groupsInSortTarget[num5].NeedScopeInfoForSortFilterExpression, count, j); } } List <int> peerSortFilters = eventSource.GetPeerSortFilters(false); if (peerSortFilters != null && peerSortFilters.Count != 0) { if (runtimeSortFilterEventInfo2.PeerSortFilters == null) { runtimeSortFilterEventInfo2.PeerSortFilters = new Hashtable(); } for (int num6 = 0; num6 < peerSortFilters.Count; num6++) { if (eventSource.ID != peerSortFilters[num6]) { runtimeSortFilterEventInfo2.PeerSortFilters.Add(peerSortFilters[num6], null); } } } } } } return(true); } return(false); }
public void AddSortTarget(string scopeName, AspNetCore.ReportingServices.ReportIntermediateFormat.ISortFilterScope target) { Global.Tracer.Assert(!this.m_reportScopes.ContainsKey(scopeName), "(!m_reportScopes.ContainsKey(scopeName))"); this.m_reportScopes.Add(scopeName, target); }