From 454343d14fe214eec8bf5906931f332d6c3019ff Mon Sep 17 00:00:00 2001 From: Jason Dove Date: Sat, 20 Mar 2021 11:23:36 -0500 Subject: [PATCH] prevent ui crash during index rebuild [no ci] --- ErsatzTV.Infrastructure/Search/SearchIndex.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/ErsatzTV.Infrastructure/Search/SearchIndex.cs b/ErsatzTV.Infrastructure/Search/SearchIndex.cs index af0ed5978..4894ea05f 100644 --- a/ErsatzTV.Infrastructure/Search/SearchIndex.cs +++ b/ErsatzTV.Infrastructure/Search/SearchIndex.cs @@ -40,6 +40,8 @@ namespace ErsatzTV.Infrastructure.Search private const string MovieType = "movie"; private const string ShowType = "show"; + private static bool _isRebuilding; + private readonly ILocalFileSystem _localFileSystem; private readonly string[] _searchFields = { TitleField, GenreField, TagField }; @@ -61,6 +63,8 @@ namespace ErsatzTV.Infrastructure.Search public async Task Rebuild(List itemIds) { + _isRebuilding = true; + await Initialize(); using var dir = FSDirectory.Open(FileSystemLayout.SearchIndexFolder); @@ -86,6 +90,8 @@ namespace ErsatzTV.Infrastructure.Search } } + _isRebuilding = false; + return Unit.Default; } @@ -131,7 +137,8 @@ namespace ErsatzTV.Infrastructure.Search public Task Search(string searchQuery, int skip, int limit, string searchField = "") { - if (string.IsNullOrWhiteSpace(searchQuery.Replace("*", string.Empty).Replace("?", string.Empty))) + if (_isRebuilding || + string.IsNullOrWhiteSpace(searchQuery.Replace("*", string.Empty).Replace("?", string.Empty))) { return new SearchResult(new List(), 0).AsTask(); }