diff --git a/Sources/BookApp/Composants/CollectionFiltrage.xaml b/Sources/BookApp/Composants/CollectionFiltrage.xaml index 62bb13b..9da0797 100644 --- a/Sources/BookApp/Composants/CollectionFiltrage.xaml +++ b/Sources/BookApp/Composants/CollectionFiltrage.xaml @@ -6,7 +6,7 @@ xmlns:model="clr-namespace:Model;assembly=Model" x:DataType="vm:ViewModelManager" x:Class="BookApp.Composants.CollectionFiltrage"> - + diff --git a/Sources/BookApp/MauiProgram.cs b/Sources/BookApp/MauiProgram.cs index 7e0c67c..24efccc 100644 --- a/Sources/BookApp/MauiProgram.cs +++ b/Sources/BookApp/MauiProgram.cs @@ -29,18 +29,22 @@ namespace BookApp builder.Logging.AddDebug(); #endif builder.Services.AddSingleton(); + builder.Services.AddSingleton(); builder.Services.AddSingleton(); + builder.Services.AddSingleton(); + builder.Services.AddSingleton(); + builder.Services.AddSingleton(); + builder.Services.AddSingleton(); + builder.Services.AddSingleton(); + builder.Services.AddTransient(); + builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); - builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); - builder.Services.AddSingleton(); - - builder.Services.AddTransient(); // transient pour recharger la data à l'execute diff --git a/Sources/BookApp/ViewModel/ViewModelManager.cs b/Sources/BookApp/ViewModel/ViewModelManager.cs index 331d5bb..dae768a 100644 --- a/Sources/BookApp/ViewModel/ViewModelManager.cs +++ b/Sources/BookApp/ViewModel/ViewModelManager.cs @@ -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; } } diff --git a/Sources/ToolKit/CommandPersonnal.cs b/Sources/ToolKit/CommandPersonnal.cs new file mode 100644 index 0000000..b7cc07f --- /dev/null +++ b/Sources/ToolKit/CommandPersonnal.cs @@ -0,0 +1,40 @@ +using System; +using System.Windows.Input; + +namespace ToolKit +{ + public class CommandPersonnal : ICommand + { + private readonly Action _execute; + private readonly Func _canExecute; + + public event EventHandler CanExecuteChanged; + + public CommandPersonnal(Action execute, Func 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 + { + public CommandPersonnal(Action execute, Func canExecute = null) + : base( + new Action(o => execute()), + canExecute != null ? new Func(o => canExecute()) : null + ) { } + } +} diff --git a/Sources/VMWrapper/FilterViewModel.cs b/Sources/VMWrapper/FilterViewModel.cs new file mode 100644 index 0000000..17ffc94 --- /dev/null +++ b/Sources/VMWrapper/FilterViewModel.cs @@ -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() { } + } +} diff --git a/Sources/VMWrapper/ManagerViewModel.cs b/Sources/VMWrapper/ManagerViewModel.cs new file mode 100644 index 0000000..0d4182d --- /dev/null +++ b/Sources/VMWrapper/ManagerViewModel.cs @@ -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; + } + } +} diff --git a/Sources/VMWrapper/SearchBarViewModel.cs b/Sources/VMWrapper/SearchBarViewModel.cs new file mode 100644 index 0000000..eeb465d --- /dev/null +++ b/Sources/VMWrapper/SearchBarViewModel.cs @@ -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(books); + AuteurGroups.Add(new AuteurGroup(author.Name, observableBooks)); + }*/ + } + catch (Exception ex) + { + System.Diagnostics.Debug.WriteLine(ex.Message); + } + } + } +}