private Dictionary <BibleBookChapterAndVerse, List <Note> > NoteVerseIndexValueFactory() { Dictionary <BibleBookChapterAndVerse, List <Note> > result = new Dictionary <BibleBookChapterAndVerse, List <Note> >(); foreach (var note in Notes) { if (note.BlockType == 2 && // A note on a Bible verse note.LocationId != null && note.BlockIdentifier != null) { var location = FindLocation(note.LocationId.Value); if (location?.BookNumber != null && location.ChapterNumber != null) { var verseRef = new BibleBookChapterAndVerse( location.BookNumber.Value, location.ChapterNumber.Value, note.BlockIdentifier.Value); if (!result.TryGetValue(verseRef, out var notesOnVerse)) { notesOnVerse = new List <Note>(); result.Add(verseRef, notesOnVerse); } notesOnVerse.Add(note); } } } return(result); }
public void AddBibleNoteAndUpdateIndex(BibleBookChapterAndVerse verseRef, Note value) { Notes.Add(value); if (_notesGuidIndex.IsValueCreated) { _notesGuidIndex.Value.Add(value.Guid, value); } if (_notesIdIndex.IsValueCreated) { _notesIdIndex.Value.Add(value.NoteId, value); } if (_notesVerseIndex.IsValueCreated) { if (!_notesVerseIndex.Value.TryGetValue(verseRef, out var notes)) { notes = new List <Note>(); _notesVerseIndex.Value.Add(verseRef, notes); } notes.Add(value); } }
private static IEnumerable <BibleNote> CreateMockBibleNotes() { return(new List <BibleNote> { new() { BookChapterAndVerse = new BibleBookChapterAndVerse(1, 1, 1), NoteTitle = "A note 1", NoteContent = "My notes go here", }, new() { BookChapterAndVerse = new BibleBookChapterAndVerse(2, 2, 2), NoteTitle = "A note 2", NoteContent = "My notes go here", }, });
public void AddBibleNoteAndUpdateIndex( BibleBookChapterAndVerse verseRef, Note value, TagMap tagMap) { if (value == null) { throw new ArgumentNullException(nameof(value)); } Notes.Add(value); if (tagMap != null) { TagMaps.Add(tagMap); } if (_notesGuidIndex.IsValueCreated) { _notesGuidIndex.Value.Add(value.Guid, value); } if (_notesIdIndex.IsValueCreated) { _notesIdIndex.Value.Add(value.NoteId, value); } if (_notesVerseIndex.IsValueCreated) { if (!_notesVerseIndex.Value.TryGetValue(verseRef, out var notes)) { notes = new List <Note>(); _notesVerseIndex.Value.Add(verseRef, notes); } notes.Add(value); } }
public IEnumerable <Note> FindNotes(BibleBookChapterAndVerse verseRef) { return(_notesVerseIndex.Value.TryGetValue(verseRef, out var notes) ? notes : null); }