public void PositionRecords(List <RecordBase> sheetRecords) { // Take a copy to loop over, so we can update the real one // without concurrency issues List <HeaderFooterRecord> hfRecordsToIterate = new List <HeaderFooterRecord>(_sviewHeaderFooters); // loop through HeaderFooterRecord records having not-empty GUID and match them with // CustomViewSettingsRecordAggregate blocks having UserSViewBegin with the same GUID foreach (HeaderFooterRecord hf in hfRecordsToIterate) { foreach (RecordBase rb in sheetRecords) { if (rb is CustomViewSettingsRecordAggregate) { CustomViewSettingsRecordAggregate cv = (CustomViewSettingsRecordAggregate)rb; cv.VisitContainedRecords(new CustomRecordVisitor1(cv, hf, _sviewHeaderFooters)); } } } }
public CustomRecordVisitor1(CustomViewSettingsRecordAggregate cv, HeaderFooterRecord hf, List <HeaderFooterRecord> sviewHeaderFooter) { this._cv = cv; this._hf = hf; this._sviewHeaderFooters = sviewHeaderFooter; }