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.
50 lines
1.4 KiB
50 lines
1.4 KiB
using Model;
|
|
using System.Collections.ObjectModel;
|
|
|
|
namespace VMWrapper
|
|
{
|
|
public class BooksViewModel
|
|
{
|
|
private readonly ILibraryManager data;
|
|
|
|
public ObservableCollection<AuteurGroup> AuteurGroups { get; private set; } =
|
|
new ObservableCollection<AuteurGroup>();
|
|
|
|
public BooksViewModel(ILibraryManager data)
|
|
{
|
|
this.data = data;
|
|
LoadBooksAsync();
|
|
}
|
|
|
|
private async void LoadBooksAsync()
|
|
{
|
|
try
|
|
{
|
|
var (totalA, authors) = await data.GetAuthorsByName("", 0, 5);
|
|
|
|
foreach (Author author in authors)
|
|
{
|
|
var books = data.GetBooksByAuthor(author.Name, 0, 5).Result.Item2;
|
|
var observableBooks = new ObservableCollection<Book>(books);
|
|
AuteurGroups.Add(new AuteurGroup(author.Name, observableBooks));
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
System.Diagnostics.Debug.WriteLine(ex.Message);
|
|
}
|
|
}
|
|
|
|
public class AuteurGroup : ObservableCollection<Book>
|
|
{
|
|
public string Name { get; private set; }
|
|
|
|
public AuteurGroup(string name, ObservableCollection<Book> books)
|
|
: base(books)
|
|
{
|
|
Name = name;
|
|
}
|
|
}
|
|
}
|
|
}
|