Add(Back-End): Filtrage up pour les auteurs
continuous-integration/drone/push Build is passing Details

Back-End
Louis DUFOUR 2 years ago
parent e76d6724de
commit 94d10fb231

@ -45,6 +45,12 @@
HorizontalOptions="End"
Margin="0,0,10,0"
Grid.Column="2">
<Image.GestureRecognizers>
<TapGestureRecognizer
Command="{Binding SortCommand }"
CommandParameter="name"
NumberOfTapsRequired="1"/>
</Image.GestureRecognizers>
<Image.Behaviors>
<toolkit:IconTintColorBehavior TintColor="Red" />
</Image.Behaviors>

@ -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<Book> BookList { get; private set; } =
new ObservableCollection<Book>();
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<string>(
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)
{
@ -115,7 +153,6 @@ namespace VMWrapper
{
var (totalB, books) = data.GetBooksByAuthor(author.Name, 0, 10).Result;
TotalBooks += totalB;
}
foreach (var author in authors)

Loading…
Cancel
Save