private bool IsGoingPast(StreamsheetParser.StreamSheetSection currentSection, StreamsheetParser.StreamSheetSection newSection, StreamsheetParser.StreamSheetSection targetsection) { if (targetsection >= currentSection) { return(newSection > targetsection); } return(false); }
private void CheckAdvancingStatus(StreamsheetParser.StreamSheetSection newSection, StreamsheetParser writer) { if (_complete) { throw new FatalException(); } if (writer.CurrentSection > newSection) { throw new FatalException(); } }
private void AdvanceStreamsheetTo(StreamsheetParser.StreamSheetSection newSection, bool head) { StreamsheetParser streamsheetParser = head ? _headWriter : _tailWriter; IOoxmlCtWrapperModel ooxmlCtWrapperModel = head ? _stagedHeadTag : _stagedTailTag; CheckAdvancingStatus(newSection, streamsheetParser); if (ooxmlCtWrapperModel != null) { ooxmlCtWrapperModel.Cleanup(); streamsheetParser.WriteTag(ooxmlCtWrapperModel.OoxmlTag); if (head) { _stagedHeadTag = null; } else { _stagedTailTag = null; } } if (_stagedPageSetupModel != null && IsGoingPast(streamsheetParser.CurrentSection, newSection, StreamsheetParser.StreamSheetSection.SheetPr)) { _stagedPageSetupModel.Cleanup(); streamsheetParser.WriteSheetProperties(_stagedPageSetupModel.BackingSheet.SheetPr); } if (_stagedSheetView != null && IsGoingPast(streamsheetParser.CurrentSection, newSection, StreamsheetParser.StreamSheetSection.SheetViews)) { streamsheetParser.WriteSheetView(_stagedSheetView); _stagedSheetView = null; } if (_stagedPageSetupModel != null && IsGoingPast(streamsheetParser.CurrentSection, newSection, StreamsheetParser.StreamSheetSection.PageMargins)) { _stagedPageSetupModel.Cleanup(); streamsheetParser.WritePageMargins(_stagedPageSetupModel.BackingSheet.PageMargins); } if (_stagedPageSetupModel != null && IsGoingPast(streamsheetParser.CurrentSection, newSection, StreamsheetParser.StreamSheetSection.PageSetup)) { _stagedPageSetupModel.Cleanup(); streamsheetParser.WritePageSetup(_stagedPageSetupModel.BackingSheet.PageSetup); } if (_stagedPageSetupModel != null && IsGoingPast(streamsheetParser.CurrentSection, newSection, StreamsheetParser.StreamSheetSection.HeaderFooter)) { _stagedPageSetupModel.Cleanup(); if (_stagedPageSetupModel.BackingSheet.HeaderFooter == null) { _stagedPageSetupModel.BackingSheet.HeaderFooter = new CT_HeaderFooter(); } _stagedPageSetupModel.BackingSheet.HeaderFooter.AlignWithMargins_Attr = false; streamsheetParser.WriteHeaderFooter(_stagedPageSetupModel.BackingSheet.HeaderFooter); } if (_stagedDrawingTag != null && IsGoingPast(streamsheetParser.CurrentSection, newSection, StreamsheetParser.StreamSheetSection.Drawing)) { streamsheetParser.WriteTag(_stagedDrawingTag); _stagedDrawingTag = null; } if (_stagedSheetBackgroundTag != null && IsGoingPast(streamsheetParser.CurrentSection, newSection, StreamsheetParser.StreamSheetSection.Picture)) { streamsheetParser.WriteTag(_stagedSheetBackgroundTag); _stagedSheetBackgroundTag = null; } CheckAdvancingStatus(newSection, streamsheetParser); }