Add (Back-End): on rajoute des vm de filtre et recherche
continuous-integration/drone/push Build is failing Details

Back-End
lodufour1 2 years ago
parent 9d7311917c
commit 998c29b0b3

@ -6,7 +6,7 @@
xmlns:model="clr-namespace:Model;assembly=Model"
x:DataType="vm:ViewModelManager"
x:Class="BookApp.Composants.CollectionFiltrage">
<CollectionView ItemsSource="{Binding bookViewModel.authorList}">
<CollectionView ItemsSource="{Binding VMMrg.bookVm.authorList}">
<CollectionView.ItemTemplate>
<DataTemplate x:DataType="model:Author">
<StackLayout Padding="5">

@ -29,18 +29,22 @@ namespace BookApp
builder.Logging.AddDebug();
#endif
builder.Services.AddSingleton<ILibraryManager, LibraryStub>();
builder.Services.AddSingleton<DetailBook>();
builder.Services.AddSingleton<BookViewModel>();
builder.Services.AddSingleton<FilterViewModel>();
builder.Services.AddSingleton<SearchBarViewModel>();
builder.Services.AddSingleton<ManagerViewModel>();
builder.Services.AddSingleton<ViewModelManager>();
builder.Services.AddSingleton<ViewModelNavigation>();
builder.Services.AddTransient<ViewModelMenu>();
builder.Services.AddSingleton<Filtrage>();
builder.Services.AddSingleton<CollectionFiltrage>();
builder.Services.AddSingleton<Tous>();
builder.Services.AddSingleton<MainPage>();
builder.Services.AddSingleton<ViewModelNavigation>();
builder.Services.AddSingleton<EmpruntsPrets>();
builder.Services.AddSingleton<GroupCollection>();
builder.Services.AddSingleton<DetailBook>();
builder.Services.AddTransient<ViewModelMenu>();
// transient pour recharger la data à l'execute

@ -1,18 +1,16 @@
using Model;
using System.Collections.ObjectModel;
using ToolKit;
using ToolKit;
using VMWrapper;
namespace BookApp.ViewModel;
public class ViewModelManager : BaseViewModel
{
public BookViewModel bookViewModel { get; }
public ManagerViewModel VMMrg { get; }
public ViewModelMenu ViewModelMenu { get; } = new ViewModelMenu();
public ViewModelNavigation ViewModelNavigation { get; } = new ViewModelNavigation();
public ViewModelManager(BookViewModel viewModel)
public ViewModelManager(ManagerViewModel viewModel)
{
bookViewModel = viewModel;
VMMrg = viewModel;
}
}

@ -0,0 +1,40 @@
using System;
using System.Windows.Input;
namespace ToolKit
{
public class CommandPersonnal<T> : ICommand
{
private readonly Action<T> _execute;
private readonly Func<T, bool> _canExecute;
public event EventHandler CanExecuteChanged;
public CommandPersonnal(Action<T> execute, Func<T, bool> canExecute = null)
{
_execute = execute;
_canExecute = canExecute ?? (_ => true);
}
public bool CanExecute(object parameter)
{
return _canExecute == null || _canExecute((T)parameter);
}
public void Execute(object parameter)
{
_execute((T)parameter);
}
public void RefreshCommand() => CanExecuteChanged?.Invoke(this, EventArgs.Empty);
}
public class CommandPersonnal : CommandPersonnal<object>
{
public CommandPersonnal(Action execute, Func<bool> canExecute = null)
: base(
new Action<object>(o => execute()),
canExecute != null ? new Func<object, bool>(o => canExecute()) : null
) { }
}
}

@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace VMWrapper
{
public class FilterViewModel
{
public FilterViewModel() { }
}
}

@ -0,0 +1,22 @@
using Model;
namespace VMWrapper
{
public class ManagerViewModel
{
public FilterViewModel filterVm { get; }
public SearchBarViewModel searchBar { get; }
public BookViewModel bookVm { get; } = new BookViewModel();
public ManagerViewModel(
FilterViewModel filterVm,
SearchBarViewModel searchBar,
BookViewModel bookVm
)
{
this.filterVm = filterVm;
this.searchBar = searchBar;
this.bookVm = bookVm;
}
}
}

@ -0,0 +1,33 @@
using Model;
namespace VMWrapper
{
public class SearchBarViewModel
{
private readonly ILibraryManager data;
public SearchBarViewModel(ILibraryManager data)
{
this.data = data;
}
public async void SearchAuthor(string nomSearch)
{
try
{
var (totalA, authors) = await data.GetAuthorsByName(nomSearch, 0, 5);
/*foreach (Author author in authors)
{
var books = data.GetBooksByAuthor(author.Name, 0, 5).Result.Item2;
var observableBooks = new ObservableCollection<Book>(books);
AuteurGroups.Add(new AuteurGroup(author.Name, observableBooks));
}*/
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message);
}
}
}
}
Loading…
Cancel
Save