diff --git a/Source/AppScaffolding/AppScaffolding.csproj b/Source/AppScaffolding/AppScaffolding.csproj index b7ea93db..733d44df 100644 --- a/Source/AppScaffolding/AppScaffolding.csproj +++ b/Source/AppScaffolding/AppScaffolding.csproj @@ -2,7 +2,7 @@ net9.0 - 12.4.3.1 + 12.4.4.1 diff --git a/Source/LibationAvalonia/ViewModels/MainVM.Filters.cs b/Source/LibationAvalonia/ViewModels/MainVM.Filters.cs index 7a7acf69..b355788d 100644 --- a/Source/LibationAvalonia/ViewModels/MainVM.Filters.cs +++ b/Source/LibationAvalonia/ViewModels/MainVM.Filters.cs @@ -14,8 +14,10 @@ namespace LibationAvalonia.ViewModels { partial class MainVM { - private QuickFilters.NamedFilter? lastGoodFilter = new(string.Empty, null); - private QuickFilters.NamedFilter? _selectedNamedFilter = new(string.Empty, null); + private string lastGoodSearch = string.Empty; + private QuickFilters.NamedFilter? lastGoodFilter => new(lastGoodSearch, null); + + private QuickFilters.NamedFilter? _selectedNamedFilter = new(string.Empty, null); private bool _firstFilterIsDefault = true; /// Library filterting query @@ -64,15 +66,16 @@ namespace LibationAvalonia.ViewModels try { await ProductsDisplay.Filter(tryFilter); - lastGoodFilter = namedFilter; + lastGoodSearch = namedFilter?.Filter ?? ""; } catch (Exception ex) { Serilog.Log.Logger.Error(ex, "Error performing filtering. {@namedFilter} {@lastGoodFilter}", namedFilter, lastGoodFilter); await MessageBox.Show($"Bad filter string: \"{tryFilter}\"\r\n\r\n{ex.Message}", "Bad filter string", MessageBoxButtons.OK, MessageBoxIcon.Error); - // re-apply last good filter - await PerformFilter(lastGoodFilter); + // re-apply last good filter + namedFilter = (namedFilter ?? new(string.Empty, null)) with { Filter = lastGoodSearch }; + await PerformFilter(namedFilter); } }