namespace ViewModel; using System.Collections.ObjectModel; using Model; using MyToolkitMVVM; public class ManagerVM : BaseViewModel { public ReadOnlyObservableCollection Books { get; set; } private readonly ObservableCollection books = new ObservableCollection(); public RelayCommand LoadBooks { get; private set; } public IEnumerable> GroupedBooks => Books.GroupBy(b => b.BookFirstAuthor).OrderBy(group => group.Key); public BookVM SelectedBook { get => selectedBook; set => SetProperty(ref selectedBook, value); } private BookVM selectedBook; public ManagerVM(ILibraryManager libraryManager,IUserLibraryManager userLibraryManager) :this(new Manager(libraryManager,userLibraryManager)) {} public async void LoadBooksFromManager() { var result = await Model.GetBooksFromCollection(index, 40, ""); NbBook = (int)result.count; books.Clear(); foreach (Book book in result.books) { books.Add(new BookVM(book)); } } public async void LoadBookFromManager(string id) { var result = await Model.GetBookById(id); SelectedBook = new BookVM(result); } public ManagerVM(Manager model) : base(model) { LoadBooks = new RelayCommand(o => LoadBooksFromManager()); LoadBooks.Execute(); Books = new ReadOnlyObservableCollection(books); } public int Index { get => index; set => SetProperty(ref index, value); } private int index; public int Count { get => count; set => SetProperty(ref count, value); } private int count; public int NbBook { get => nbBook; set => SetProperty(ref nbBook, value); } private int nbBook; }