/// ------------------------------------------------------------------------------------ public IEnumerable <TimeSpan> InsertNewBoundary(TimeSpan newBoundary) { if (Tiers.InsertTierSegment((float)newBoundary.TotalSeconds, ConfirmDeletionOfOralAnnotations) == BoundaryModificationResult.Success) { Action <SegmentChange> undoAction = RevertNewSegment; if (_oralAnnotationFilesToDelete != null) { foreach (var file in _oralAnnotationFilesToDelete) { BackupOralAnnotationSegmentFile(file, true); Action <SegmentChange> undoActionOrig = undoAction; var file1 = file; undoAction = c => { undoActionOrig(c); RestorePreviousVersionOfAnnotation(file1); }; } _oralAnnotationFilesToDelete = null; } _undoStack.Push(new SegmentChange(TimeTier.Segments.First(s => s.TimeRange.End == newBoundary).TimeRange.Copy(), undoAction)); OnSegmentBoundaryChanged(); } return(GetSegmentEndBoundaries()); }