BuecherwurmAPI/Program.cs

80 lines
3.1 KiB
C#
Raw Permalink Normal View History

2020-05-28 11:47:02 +00:00
using System;
using System.IO;
2020-05-28 11:47:02 +00:00
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.Data.Sqlite;
2020-05-28 11:47:02 +00:00
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using System.Text.Json;
using System.Text.Json.Serialization;
2020-05-28 11:47:02 +00:00
namespace BuecherwurmAPI
{
public class Program
{
public static void Main(string[] args)
{
if (!File.Exists("LongWormMemory.db"))
{
CreateNewEmptyDB();
MakeImports();
}
2020-05-28 11:47:02 +00:00
CreateHostBuilder(args).Build().Run();
}
private static void MakeImports()
{
var booksJson = File.ReadAllText("books.json");
//var magazinesJson = File.ReadAllText("magazines.json");
var catalogue = new Models.KatalogModel();
var items = new Models.ItemModel();
var config = new JsonSerializerOptions
{
PropertyNameCaseInsensitive = true
};
var importedBooks = JsonSerializer.Deserialize<List<Models.BookPost>>(booksJson, config);
//var importedMags = JsonSerializer.Deserialize<List<Models.BookPost>>(magazinesJson);
List<Models.IProductPost> imports = new List<Models.IProductPost>();
imports.AddRange(importedBooks);
//imports.AddRange(importedMags);
var model = new Models.KatalogModel();
foreach (var item in imports)
{
model.AddProduct(item);
}
}
private static void CreateNewEmptyDB()
{
//File.Create("LongWormMemory.db");
File.WriteAllText("LongWormMemory.db", "");
var connectionBuilder = new SqliteConnectionStringBuilder {DataSource = "LongWormMemory.db"};
var connection = new SqliteConnection(connectionBuilder.ConnectionString);
connection.Open();
using (var command = connection.CreateCommand())
{
command.CommandText = "CREATE TABLE Lends (Id INTEGER NOT NULL PRIMARY KEY, ItemId INTEGER NOT NULL, ReturnDate TEXT NOT NULL, Customer TEXT NOT NULL, Returned INTEGER NOT NULL)";
command.ExecuteNonQuery();
command.CommandText = "CREATE TABLE Items (ItemId INTEGER NOT NULL PRIMARY KEY, BookId INTEGER NOT NULL)";
command.ExecuteNonQuery();
command.CommandText = "CREATE TABLE Products (ProductId INTEGER PRIMARY KEY, Title TEXT, Author TEXT, Country TEXT, Link TEXT, Language TEXT, Pages INTEGER, Year INTEGER, Category INTEGER, ImageLink TEXT, LendTime INTEGER, LendType INTEGER, Run INTEGER, Audience TEXT, Topic TEXT)";
command.ExecuteNonQuery();
}
}
2020-05-28 11:47:02 +00:00
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}
}