mirror of
https://github.com/rmcrackan/Libation.git
synced 2026-01-24 13:48:58 -05:00
- Use the main display grid control to display deleted books - Added search functionality for deleted books. This required creating a temporary search index in the `InProgress` folder. The products grid control now uses an instance of `ISearchEngine` to filter its grid entries. The main grid uses a singleton instance of `MainSearchEngine`, which merely wraps `SearchEngineCommands.Search()`. The TrashBinDialogs use `TempSearchEngine`. - Users can now batch select `Everyting` as well as `Audible Plus Books` Avalonia: - Refactor main grid context menus to no longer require reflection
46 lines
1020 B
C#
46 lines
1020 B
C#
using DataLayer;
|
|
using LibationFileManager;
|
|
using LibationSearchEngine;
|
|
using System.Collections.Generic;
|
|
|
|
#nullable enable
|
|
namespace ApplicationServices;
|
|
|
|
/// <summary>
|
|
/// A temporary search engine created in InProgress/TempSearchEngine
|
|
/// Used for Trash Bin searches to avoid interfering with the main search engine
|
|
/// </summary>
|
|
public class TempSearchEngine : ISearchEngine
|
|
{
|
|
public static string SearchEnginePath { get; }
|
|
= System.IO.Path.Combine(Configuration.Instance.InProgress, nameof(TempSearchEngine));
|
|
private SearchEngine SearchEngine { get; } = new SearchEngine(SearchEnginePath);
|
|
|
|
public bool ReindexSearchEngine(IEnumerable<LibraryBook> books)
|
|
{
|
|
try
|
|
{
|
|
SearchEngine.CreateNewIndex(books, overwrite: true);
|
|
return true;
|
|
}
|
|
catch
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
public SearchResultSet? GetSearchResultSet(string? searchString)
|
|
{
|
|
if (string.IsNullOrEmpty(searchString))
|
|
return null;
|
|
|
|
try
|
|
{
|
|
return SearchEngine.Search(searchString);
|
|
}
|
|
catch
|
|
{
|
|
return null;
|
|
}
|
|
}
|
|
}
|