예제 #1
0
 private static PublishNote Convert(TimeSeriesNote note)
 {
     return(new PublishNote
     {
         StartTime = note.TimeRange?.Start.ToDateTimeOffset() ?? DateTimeOffset.MinValue,
         EndTime = note.TimeRange?.End.ToDateTimeOffset() ?? DateTimeOffset.MaxValue,
         NoteText = note.NoteText
     });
 }
예제 #2
0
        private TimeSeriesNote AdjustNoteTextAndTimeRange(TimeSeriesNote note)
        {
            if (note.TimeRange.HasValue && note.TimeRange.Value.End == note.TimeRange.Value.Start)
            {
                note.TimeRange = new Interval(note.TimeRange.Value.Start, note.TimeRange.Value.End.PlusTicks(1));
            }

            const int maxNoteLength = 500;

            if (note.NoteText.Length > maxNoteLength)
            {
                note.NoteText = note.NoteText.Substring(0, maxNoteLength - 20) + " ... note truncated.";
            }

            return(note);
        }
예제 #3
0
            public void AddOverlappingIntervalMetadata(
                TimeSeriesNote newItem,
                Func <TimeSeriesNote, TimeSeriesNote, bool> isDifferent)
            {
                var overlappingItem = Items
                                      .LastOrDefault(item => item.TimeRange.Intersects(newItem.TimeRange) && !isDifferent(item, newItem));

                if (overlappingItem == null)
                {
                    CurrentItem = newItem;
                    Items.Add(CurrentItem);

                    return;
                }

                CurrentItem = overlappingItem;

                ExtendCurrentItem(newItem.TimeRange);
            }
        protected void AddRowNote(Instant time, string text)
        {
            if (string.IsNullOrWhiteSpace(text))
            {
                CurrentNote = null;
                return;
            }

            if (CurrentNote != null && CurrentNote.NoteText == text)
            {
                // Extend the last note
                CurrentNote.TimeRange = new Interval(CurrentNote.TimeRange?.Start ?? time, time);
                return;
            }

            CurrentNote = new TimeSeriesNote
            {
                TimeRange = new Interval(time, time),
                NoteText  = text
            };

            RowNotes.Add(CurrentNote);
        }