69 lines
No EOL
1.9 KiB
C#
69 lines
No EOL
1.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text.Json;
|
|
|
|
namespace Bücherwurm
|
|
{
|
|
class Catalogue
|
|
{
|
|
private List<IProduct> Products {get; set;}
|
|
|
|
private int NextId {get; set;}
|
|
|
|
public Catalogue()
|
|
{
|
|
Products = new List<IProduct>();
|
|
NextId = 1;
|
|
}
|
|
|
|
public void ImportBooks(string JsonString)
|
|
{
|
|
var IntermediateBooks = JsonSerializer.Deserialize<List<Book>>(JsonString);
|
|
foreach (var Ibook in IntermediateBooks)
|
|
{
|
|
Ibook.OverwriteNullId(NextId);
|
|
NextId += 1;
|
|
}
|
|
Products = new List<IProduct>(IntermediateBooks);
|
|
|
|
}public void ImportMagazines(string JsonString)
|
|
{
|
|
var IntermediateBooks = JsonSerializer.Deserialize<List<Magazine>>(JsonString);
|
|
foreach (var Ibook in IntermediateBooks)
|
|
{
|
|
Ibook.OverwriteNullId(NextId);
|
|
NextId += 1;
|
|
}
|
|
Products = new List<IProduct>(IntermediateBooks);
|
|
}
|
|
|
|
public void AddBook(string Title, string Author,
|
|
string Country, string ILink, string Link,
|
|
string Language, int Pages, int Year)
|
|
{
|
|
Products.Add(new Book(NextId, Title, Author, Country, ILink, Link, Language, Pages, Year));
|
|
NextId = NextId++;
|
|
}
|
|
|
|
public void Add(IProduct product)
|
|
{
|
|
Products.Add(product);
|
|
}
|
|
|
|
public void Remove(int bookID)
|
|
{
|
|
Products.RemoveAll(book => book.ProductId == bookID);
|
|
}
|
|
|
|
public List<IProduct> GetProducts()
|
|
{
|
|
return Products;
|
|
}
|
|
|
|
public IProduct LookupProduct(int prodId)
|
|
{
|
|
return Products.Find(book => book.ProductId == prodId);
|
|
}
|
|
}
|
|
} |