You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
145 lines
4.1 KiB
145 lines
4.1 KiB
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<string> LoadBooks { get; private set; }
|
|
|
|
|
|
// ------------------------------------------------------------------------------//
|
|
|
|
public ObservableCollection<Book> Books = new ObservableCollection<Book>();
|
|
public ObservableCollection<GroupBooks> GroupBooks { get; private set; } = new ObservableCollection<GroupBooks>();
|
|
|
|
// ------------------------------------------------------------------------------//
|
|
|
|
|
|
public BooksViewModel(IUserLibraryManager userLibraryManager,WorkOnListBooks workOnListBooks)
|
|
{
|
|
this.UserLibraryManager = userLibraryManager;
|
|
this.WorkOnListBooks = workOnListBooks;
|
|
|
|
|
|
LoadBooks = new RelayCommand<string>(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> { 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> { 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<GroupBooks> 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;
|
|
|
|
|
|
|
|
}
|
|
} |