コード例 #1
0
        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);
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
 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",
         },
     });
コード例 #4
0
        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);
            }
        }
コード例 #5
0
 public IEnumerable <Note> FindNotes(BibleBookChapterAndVerse verseRef)
 {
     return(_notesVerseIndex.Value.TryGetValue(verseRef, out var notes) ? notes : null);
 }