make json import
This commit is contained in:
parent
49fb7383a1
commit
f87067ffb6
9 changed files with 1087 additions and 9 deletions
2
.vscode/launch.json
vendored
2
.vscode/launch.json
vendored
|
@ -11,7 +11,7 @@
|
|||
"preLaunchTask": "build",
|
||||
// If you have changed target frameworks, make sure to update the program path.
|
||||
"program": "${workspaceFolder}/bin/Debug/netcoreapp3.1/Bücherwurm.dll",
|
||||
"args": [],
|
||||
"args": ["books.json"],
|
||||
"cwd": "${workspaceFolder}",
|
||||
// For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console
|
||||
"console": "internalConsole",
|
||||
|
|
|
@ -216,5 +216,10 @@ namespace Bücherwurm
|
|||
Console.WriteLine("Ausleihe nicht bekannt oder bereits urückgegeben.");
|
||||
}
|
||||
}
|
||||
|
||||
public void MakeImport(string JsonText)
|
||||
{
|
||||
Catalogue.Import(JsonText);
|
||||
}
|
||||
}
|
||||
}
|
26
Book.cs
26
Book.cs
|
@ -1,23 +1,34 @@
|
|||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Bücherwurm
|
||||
{
|
||||
class Book
|
||||
{
|
||||
public int BookId {get;}
|
||||
[JsonIgnoreAttribute]
|
||||
public int BookId {get; set;}
|
||||
|
||||
[JsonPropertyName("title")]
|
||||
public string Title {get; set;}
|
||||
|
||||
[JsonPropertyName("author")]
|
||||
public string Author {get; set;}
|
||||
|
||||
[JsonPropertyName("country")]
|
||||
public string Country {get; set;}
|
||||
|
||||
[JsonPropertyName("imageLink")]
|
||||
public string ImageLink {get; set;}
|
||||
|
||||
[JsonPropertyName("link")]
|
||||
public string Link {get; set;}
|
||||
|
||||
[JsonPropertyName("language")]
|
||||
public string Language {get; set;}
|
||||
|
||||
[JsonPropertyName("pages")]
|
||||
public int Pages {get; set;}
|
||||
|
||||
[JsonPropertyName("year")]
|
||||
public int Year {get; set;}
|
||||
|
||||
public Book(int Id, string Title, string Author,
|
||||
|
@ -34,5 +45,18 @@ namespace Bücherwurm
|
|||
this.Pages = Pages;
|
||||
this.Year = Year;
|
||||
}
|
||||
|
||||
public Book()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void OverwriteNullId(int Id)
|
||||
{
|
||||
if (BookId == 0)
|
||||
{
|
||||
BookId = Id;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
32
BookImport.cs
Normal file
32
BookImport.cs
Normal file
|
@ -0,0 +1,32 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Bücherwurm
|
||||
{
|
||||
public class BookIdConvert : JsonConverter<int>
|
||||
{
|
||||
public int NextId {get; set;}
|
||||
|
||||
public override int Read(ref Utf8JsonReader reader,
|
||||
System.Type typeToConvert,
|
||||
JsonSerializerOptions options)
|
||||
{
|
||||
var ret = this.NextId;
|
||||
this.NextId = this.NextId++;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public override void Write(Utf8JsonWriter writer,
|
||||
int value,
|
||||
JsonSerializerOptions options)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public BookIdConvert(int InitId)
|
||||
{
|
||||
NextId = InitId;
|
||||
}
|
||||
}
|
||||
}
|
11
Catalogue.cs
11
Catalogue.cs
|
@ -1,5 +1,6 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text.Json;
|
||||
|
||||
namespace Bücherwurm
|
||||
{
|
||||
|
@ -12,12 +13,18 @@ namespace Bücherwurm
|
|||
public Catalogue()
|
||||
{
|
||||
Books = new List<Book>();
|
||||
NextId = 0;
|
||||
NextId = 1;
|
||||
}
|
||||
|
||||
public void Import(string JsonString)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
var intermediateBooks = JsonSerializer.Deserialize<List<Book>>(JsonString);
|
||||
foreach (var ibook in intermediateBooks)
|
||||
{
|
||||
ibook.OverwriteNullId(NextId);
|
||||
NextId = NextId + 1;
|
||||
}
|
||||
Books = intermediateBooks;
|
||||
}
|
||||
|
||||
public void Add(string Title, string Author,
|
||||
|
|
|
@ -10,19 +10,19 @@ namespace Bücherwurm
|
|||
|
||||
public Inventory(){
|
||||
InventoryList = new List<Item>();
|
||||
NextId = 0;
|
||||
NextId = 1;
|
||||
}
|
||||
|
||||
public void Add(Book Book)
|
||||
{
|
||||
InventoryList.Add(new Item(NextId, Book.BookId));
|
||||
NextId = NextId++;
|
||||
NextId = NextId + 1;
|
||||
}
|
||||
|
||||
public void Add(int BookId)
|
||||
{
|
||||
InventoryList.Add(new Item(NextId, BookId));
|
||||
NextId = NextId++;
|
||||
NextId = NextId + 1;
|
||||
}
|
||||
|
||||
public void Remove(int Id)
|
||||
|
|
|
@ -14,14 +14,14 @@ namespace Bücherwurm
|
|||
{
|
||||
Lendings = new List<Lending>();
|
||||
ActiveLendings = new List<int>();
|
||||
NextId = 0;
|
||||
NextId = 1;
|
||||
}
|
||||
|
||||
public void Lend(int[] ItemIds, string Customer)
|
||||
{
|
||||
Lendings.Add(new Lending(NextId, ItemIds, Customer));
|
||||
ActiveLendings.Add(NextId);
|
||||
NextId = NextId++;
|
||||
NextId = NextId + 1;
|
||||
}
|
||||
|
||||
public void Return(int LendID)
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
|
||||
namespace Bücherwurm
|
||||
{
|
||||
|
@ -8,6 +9,13 @@ namespace Bücherwurm
|
|||
public static void Main(string[] args)
|
||||
{
|
||||
Admin = new Administration();
|
||||
if (args.Length == 1)
|
||||
{
|
||||
Console.WriteLine("Versuche JSON Katalog von {0} zu importieren...", args[0]);
|
||||
string jsonString = File.ReadAllText(args[0]);
|
||||
Admin.MakeImport(jsonString);
|
||||
Console.WriteLine("Erfolg!");
|
||||
}
|
||||
var Continue = true;
|
||||
do
|
||||
{
|
||||
|
|
1002
books.json
Normal file
1002
books.json
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue