diff --git a/Sources/BookApp.sln b/Sources/BookApp.sln index a312494..24acfb1 100644 --- a/Sources/BookApp.sln +++ b/Sources/BookApp.sln @@ -19,9 +19,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Utils", "Utils\Utils.csproj EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Stub", "Stub\Stub.csproj", "{14ED7ADF-7B83-432E-A87B-40C153041067}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestFrontEnd", "Tests\TestFrontEnd.csproj", "{945A6DB3-CB0A-4FB8-8117-64F0CB0D838A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tests", "Tests\Tests.csproj", "{945A6DB3-CB0A-4FB8-8117-64F0CB0D838A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VMWrapper", "VMWrapper\VMWrapper.csproj", "{377DC5AB-5D7C-4A29-ACED-C08B581A8E58}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VMWrapper", "VMWrapper\VMWrapper.csproj", "{377DC5AB-5D7C-4A29-ACED-C08B581A8E58}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ToolKit", "ToolKit\ToolKit.csproj", "{778541B9-BECF-49DC-8860-B8F134A6F4E2}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -71,6 +73,10 @@ Global {377DC5AB-5D7C-4A29-ACED-C08B581A8E58}.Debug|Any CPU.Build.0 = Debug|Any CPU {377DC5AB-5D7C-4A29-ACED-C08B581A8E58}.Release|Any CPU.ActiveCfg = Release|Any CPU {377DC5AB-5D7C-4A29-ACED-C08B581A8E58}.Release|Any CPU.Build.0 = Release|Any CPU + {778541B9-BECF-49DC-8860-B8F134A6F4E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {778541B9-BECF-49DC-8860-B8F134A6F4E2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {778541B9-BECF-49DC-8860-B8F134A6F4E2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {778541B9-BECF-49DC-8860-B8F134A6F4E2}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Sources/BookApp/Composants/CollectionFiltrage.xaml b/Sources/BookApp/Composants/CollectionFiltrage.xaml index 9c62a76..4daadf9 100644 --- a/Sources/BookApp/Composants/CollectionFiltrage.xaml +++ b/Sources/BookApp/Composants/CollectionFiltrage.xaml @@ -4,7 +4,7 @@ xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit" xmlns:vm="clr-namespace:BookApp.ViewModel" xmlns:model="clr-namespace:Model;assembly=Model" - x:DataType="vm:TousViewModel" + x:DataType="vm:ViewModelManager" x:Class="BookApp.Composants.CollectionFiltrage"> diff --git a/Sources/BookApp/Composants/CollectionFiltrage.xaml.cs b/Sources/BookApp/Composants/CollectionFiltrage.xaml.cs index 90d1008..8f39ed4 100644 --- a/Sources/BookApp/Composants/CollectionFiltrage.xaml.cs +++ b/Sources/BookApp/Composants/CollectionFiltrage.xaml.cs @@ -19,7 +19,7 @@ public partial class CollectionFiltrage : ContentView public ObservableCollection MyCollections1 { get; set; }*/ - public CollectionFiltrage(TousViewModel data) + public CollectionFiltrage(ViewModelManager data) { InitializeComponent(); diff --git a/Sources/BookApp/MauiProgram.cs b/Sources/BookApp/MauiProgram.cs index d31faa2..c61dd7d 100644 --- a/Sources/BookApp/MauiProgram.cs +++ b/Sources/BookApp/MauiProgram.cs @@ -30,9 +30,10 @@ namespace BookApp #endif builder.Services.AddSingleton(); builder.Services.AddSingleton(); - builder.Services.AddSingleton(); + builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); + // transient pour recharger la data à l'execute diff --git a/Sources/BookApp/Pages/Filtrage.xaml b/Sources/BookApp/Pages/Filtrage.xaml index 6ad91e7..f6030de 100644 --- a/Sources/BookApp/Pages/Filtrage.xaml +++ b/Sources/BookApp/Pages/Filtrage.xaml @@ -4,9 +4,9 @@ xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit" xmlns:composants="clr-namespace:BookApp.Composants" - xmlns:vm="clr-namespace:BookApp.ViewModel" xmlns:model="clr-namespace:Model;assembly=Model" - x:DataType="vm:TousViewModel" + xmlns:vmw="clr-namespace:VMWrapper;assembly=VMWrapper" + x:DataType="vmw:BookViewModel" x:Class="BookApp.Pages.Filtrage"> @@ -66,8 +66,7 @@ - - + diff --git a/Sources/BookApp/Pages/Filtrage.xaml.cs b/Sources/BookApp/Pages/Filtrage.xaml.cs index f05d8bd..ae9a253 100644 --- a/Sources/BookApp/Pages/Filtrage.xaml.cs +++ b/Sources/BookApp/Pages/Filtrage.xaml.cs @@ -1,12 +1,13 @@ using BookApp.ViewModel; - +using VMWrapper; + namespace BookApp.Pages { public partial class Filtrage : ContentPage { SearchBar searchBar = new SearchBar { Placeholder = "Search items..." }; - public Filtrage(TousViewModel data) + public Filtrage(BookViewModel data) { InitializeComponent(); BindingContext= data; diff --git a/Sources/BookApp/ViewModel/TousViewModel.cs b/Sources/BookApp/ViewModel/ViewModelManager.cs similarity index 81% rename from Sources/BookApp/ViewModel/TousViewModel.cs rename to Sources/BookApp/ViewModel/ViewModelManager.cs index e0648bd..519e513 100644 --- a/Sources/BookApp/ViewModel/TousViewModel.cs +++ b/Sources/BookApp/ViewModel/ViewModelManager.cs @@ -7,7 +7,7 @@ namespace BookApp.ViewModel; -public class TousViewModel +public class ViewModelManager { BookViewModel _viewModel; @@ -16,11 +16,11 @@ public class TousViewModel /* public ObservableCollection AuteurGroups { get; private set; } = new ObservableCollection();*/ - public TousViewModel(BookViewModel viewModel) + public ViewModelManager(BookViewModel viewModel) { _viewModel = viewModel; - GetAuthors(); + //GetAuthors(); /* ObservableCollection auteurs = new Stub().CreateStubData(); foreach (Auteur auteur in auteurs) { @@ -29,16 +29,16 @@ public class TousViewModel } //fireandforget - public async void GetAuthors() + /*public async void GetAuthors() { - var authors1 = await _viewModel.GetAuthor(); + var authors1 = await _viewModel.GetAuthors(); Authors.Clear(); foreach (var author in authors1) { Authors.Add(author); } - } + }*/ } /*public class AuteurGroup : ObservableCollection diff --git a/Sources/BookApp/ViewModel/ViewModelNavigation.cs b/Sources/BookApp/ViewModel/ViewModelNavigation.cs new file mode 100644 index 0000000..ade41dc --- /dev/null +++ b/Sources/BookApp/ViewModel/ViewModelNavigation.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BookApp.ViewModel +{ + internal class ViewModelNavigation + { + } +} diff --git a/Sources/Tests/TestFrontEnd.csproj b/Sources/Tests/Tests.csproj similarity index 86% rename from Sources/Tests/TestFrontEnd.csproj rename to Sources/Tests/Tests.csproj index 585e254..abb2b97 100644 --- a/Sources/Tests/TestFrontEnd.csproj +++ b/Sources/Tests/Tests.csproj @@ -21,4 +21,9 @@ + + + + + diff --git a/Sources/ToolKit/Class1.cs b/Sources/ToolKit/Class1.cs new file mode 100644 index 0000000..bc64cba --- /dev/null +++ b/Sources/ToolKit/Class1.cs @@ -0,0 +1,7 @@ +namespace ToolKit +{ + public class Class1 + { + + } +} \ No newline at end of file diff --git a/Sources/ToolKit/ToolKit.csproj b/Sources/ToolKit/ToolKit.csproj new file mode 100644 index 0000000..4658cbf --- /dev/null +++ b/Sources/ToolKit/ToolKit.csproj @@ -0,0 +1,9 @@ + + + + net7.0 + enable + enable + + + diff --git a/Sources/VMWrapper/BookViewModel.cs b/Sources/VMWrapper/BookViewModel.cs index 1806598..a52e25d 100644 --- a/Sources/VMWrapper/BookViewModel.cs +++ b/Sources/VMWrapper/BookViewModel.cs @@ -1,32 +1,88 @@ using Model; using System; using System.Collections.ObjectModel; +using System.ComponentModel; +using System.Runtime.CompilerServices; using System.Xml.Linq; namespace VMWrapper { // All the code in this file is included in all platforms. - public class BookViewModel + public class BookViewModel : INotifyPropertyChanged { ILibraryManager data; - ObservableCollection authorList; - public BookViewModel(ILibraryManager data) + public ObservableCollection authorList { get; private set; } = new ObservableCollection(); + public ObservableCollection bookList { get; private set; } = new ObservableCollection(); + public ObservableCollection AuteurGroups { get; private set; } = new ObservableCollection(); + public event PropertyChangedEventHandler PropertyChanged; + + public BookViewModel(ILibraryManager data) { this.data = data; + GetAuthors(); + } + + + + protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + + public class AuteurGroup : ObservableCollection + { + public string Name { get; private set; } + + public AuteurGroup(string name, ObservableCollection books): base(books) + { + Name = name; + } + } + + public void GetBooks() + { + var objet = data.GetBooksByAuthor("", 0, 8); + var ojb = objet.Result.Item2; + + /*foreach (Book Book in ojb) + { + AuteurGroups.Add(new AuteurGroup(Book.Authors.Name, auteur.Books)); + } + + ObservableCollection auteurs = new Stub().CreateStubData(); + foreach (Auteur auteur in auteurs) + { + AuteurGroups.Add(new AuteurGroup(auteur.Name, auteur.Books)); + } + */ + } - public async Task> GetAuthor() + + public void GetAuthors() { - var objet = await data.GetAuthorsByName("",0,10); + var objet = data.GetAuthorsByName("",0,10); + var ojb = objet.Result.Item2; + + authorList.Clear(); + foreach (var author in ojb) + { + authorList.Add(author); + } + } + + + + public async Task> GetBooksByTitle() + { + var objet = await data.GetBooksByTitle("", 0, 9); var ojb = objet.Item2; - - return new ObservableCollection(ojb); - + return new ObservableCollection(ojb); } - + } } \ No newline at end of file