using ToolKit; using Model; using System.Collections.ObjectModel; using System.Windows.Input; using System.Data.Common; namespace Wrapper { public class BooksViewModel : BaseViewModel { IUserLibraryManager UserLibraryManager { get; set; } public WorkOnListBooks WorkOnListBooks { get; set; } public RelayCommand LoadBooks { get; private set; } // ------------------------------------------------------------------------------// public ObservableCollection Books = new ObservableCollection(); public ObservableCollection GroupBooks { get; private set; } = new ObservableCollection(); // ------------------------------------------------------------------------------// public BooksViewModel(IUserLibraryManager userLibraryManager,WorkOnListBooks workOnListBooks) { this.UserLibraryManager = userLibraryManager; this.WorkOnListBooks = workOnListBooks; LoadBooks = new RelayCommand(o => LoadBooksFonction()); InitiateParam(); LoadBooksFonction(); } private void InitiateParam() { Index = 0; Count = 7; } /* private void UpdateGroupBooks() { GroupBooks.Clear(); foreach (Book book in Books) { if (book.Authors.Count != 0) { foreach (Author author in book.Authors) { int find = -1; for (int i = 0; i < GroupBooks.Count(); i++) { if (GroupBooks[i].Author == author.Name) { find = i; break; } } if (find != -1) { GroupBooks[find].Add(book); } else { GroupBooks.Add(new GroupBooks(author.Name, new List { book })); } } } else { int index = -1; for ( int i = 0; i < GroupBooks.Count(); i++) { if (GroupBooks[i].Author == "Inconnu") { index = i; break; } } if (index == -1) { GroupBooks.Add(new GroupBooks("Inconnu", new List { book })); } else { GroupBooks[index].Add(book); } } } }*/ private void LoadBooksFonction() { var result = UserLibraryManager.GetBooksFromCollection(index,count,""); if (result.Result.Item2.Count() == 0 ) { return ; } Books.Clear(); foreach (Book book in result.Result.Item2) { Books.Add(book); } List groupeBook = WorkOnListBooks.UpdateGroupBooks(Books.ToList()); if (groupeBook.Count > 0) { GroupBooks.Clear(); foreach (GroupBooks groupeBookUnique in groupeBook) { GroupBooks.Add(groupeBookUnique); } } } public int Index { get { return index; } private set { setProperty(ref index, value); } } private int index ; public int Count { get { return count; } private set { setProperty(ref count, value); } } private int count; } }