Ejemplo n.º 1
0
        /// ------------------------------------------------------------------------------------
        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());
        }