From 94d10fb2314775cfa4a6a4e48f0a91af7e686a61 Mon Sep 17 00:00:00 2001 From: Louis DUFOUR Date: Sun, 22 Oct 2023 22:14:25 +0200 Subject: [PATCH] Add(Back-End): Filtrage up pour les auteurs --- Sources/BookApp/Pages/Filtrage.xaml | 6 +++ Sources/VMWrapper/FilterViewModel.cs | 59 ++++++++++++++++++++++------ 2 files changed, 54 insertions(+), 11 deletions(-) diff --git a/Sources/BookApp/Pages/Filtrage.xaml b/Sources/BookApp/Pages/Filtrage.xaml index d6c0ebb..1b6177b 100644 --- a/Sources/BookApp/Pages/Filtrage.xaml +++ b/Sources/BookApp/Pages/Filtrage.xaml @@ -45,6 +45,12 @@ HorizontalOptions="End" Margin="0,0,10,0" Grid.Column="2"> + + + diff --git a/Sources/VMWrapper/FilterViewModel.cs b/Sources/VMWrapper/FilterViewModel.cs index 3342865..121569c 100644 --- a/Sources/VMWrapper/FilterViewModel.cs +++ b/Sources/VMWrapper/FilterViewModel.cs @@ -1,18 +1,12 @@ using Model; -using System; -using System.Collections.Generic; using System.Collections.ObjectModel; using System.Diagnostics; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using System.Windows.Input; using ToolKit; -using static System.Runtime.InteropServices.JavaScript.JSType; namespace VMWrapper { - public class FilterViewModel: BaseViewModel + public class FilterViewModel : BaseViewModel { private readonly ILibraryManager data; @@ -21,7 +15,6 @@ namespace VMWrapper public ObservableCollection BookList { get; private set; } = new ObservableCollection(); - private long _totalBooks; public long TotalBooks { @@ -46,7 +39,6 @@ namespace VMWrapper _ = SearchAuthors(SearchQuery); } } - } private ICommand _searchCommand; @@ -55,6 +47,12 @@ namespace VMWrapper async (query) => await SearchAuthors(query) ); + private ICommand _sortCommand; + public ICommand SortCommand => + _sortCommand ??= new CommandPersonnal( + async (sortOrder) => await SortingByName(sortOrder) + ); + public FilterViewModel(ILibraryManager data) { this.data = data; @@ -99,6 +97,46 @@ namespace VMWrapper } } + public async Task SortingByName(string sortOrder) + { + try + { + string sortParam = sortOrder switch + { + "name" => "name", + "name_reverse" => "name_reverse", + _ => "name" + }; + Debug.WriteLine($"riri", sortOrder); + if (SearchQuery != null) + { + var (total, authors) = await data.GetAuthorsByName( + _searchQuery, + 0, + 10, + sortParam + ); + AuthorList.Clear(); + foreach (var author in authors) + { + AuthorList.Add(author); + } + } + else + { + var (total, authors) = await data.GetAuthorsByName("", 0, 10, sortParam); + AuthorList.Clear(); + foreach (var author in authors) + { + AuthorList.Add(author); + } + } + } + catch (Exception ex) + { + Debug.WriteLine(ex.Message); + } + } private async Task SearchAuthors(string query) { @@ -107,7 +145,7 @@ namespace VMWrapper if (!string.IsNullOrWhiteSpace(query)) { TotalBooks = 0; - + var (total, authors) = await data.GetAuthorsByName(query, 0, 10); AuthorList.Clear(); @@ -115,7 +153,6 @@ namespace VMWrapper { var (totalB, books) = data.GetBooksByAuthor(author.Name, 0, 10).Result; TotalBooks += totalB; - } foreach (var author in authors)