public void LoadLatest() { var resultCount = MaxNumberOfNotesInRecentList; if (_changedNote != null && _changeIsDeletion) { ++resultCount; } // ReSharper disable once RedundantArgumentDefaultValue var lastHeaders = NoteStorage.GetTopInPeriod(null, DateTime.Now, resultCount, SearchableDocumentTime.LastUpdate); LastUpdatedNotes = lastHeaders.Select(h => NoteStorage.GetExisting(h.Id)).Where(x => x != null).ToList(); if (lastHeaders.Count > LastUpdatedNotes.Count) { Log.WarnFormat("Fulltext index out of sync: rebuild it"); } // FT index is updated asynchronously, so when we've just created new note it may not be returned if (_changedNote != null) { if (!_changeIsDeletion && !LastUpdatedNotes.Contains(_changedNote)) { LastUpdatedNotes.Insert(0, _changedNote); } else if (_changeIsDeletion && LastUpdatedNotes.Contains(_changedNote)) { LastUpdatedNotes.Remove(_changedNote); } } if (LastUpdatedNotes.Count > MaxNumberOfNotesInRecentList) { LastUpdatedNotes.RemoveAt(LastUpdatedNotes.Count - 1); } }