Browse Source

make json import

master
nek0 1 year ago
parent
commit
f87067ffb6
  1. 2
      .vscode/launch.json
  2. 5
      Administration.cs
  3. 26
      Book.cs
  4. 32
      BookImport.cs
  5. 11
      Catalogue.cs
  6. 6
      Inventory.cs
  7. 4
      Lend_Administration.cs
  8. 8
      Program.cs
  9. 1002
      books.json

2
.vscode/launch.json

@ -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",

5
Administration.cs

@ -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

@ -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

@ -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

@ -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,

6
Inventory.cs

@ -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)

4
Lend_Administration.cs

@ -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)

8
Program.cs

@ -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

File diff suppressed because it is too large
Loading…
Cancel
Save