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 }); }
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); }
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); }