diff --git a/.gitignore b/.gitignore
index c17fba5..986c56a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,3 @@
-src/bin/*
-src/obj/*
+bin/*
+obj/*
diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 0000000..2d8b8d7
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,27 @@
+{
+ // Use IntelliSense to find out which attributes exist for C# debugging
+ // Use hover for the description of the existing attributes
+ // For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "name": ".NET Core Launch (console)",
+ "type": "coreclr",
+ "request": "launch",
+ "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": [],
+ "cwd": "${workspaceFolder}",
+ // For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console
+ "console": "internalConsole",
+ "stopAtEntry": false
+ },
+ {
+ "name": ".NET Core Attach",
+ "type": "coreclr",
+ "request": "attach",
+ "processId": "${command:pickProcess}"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
new file mode 100644
index 0000000..32390f2
--- /dev/null
+++ b/.vscode/tasks.json
@@ -0,0 +1,42 @@
+{
+ "version": "2.0.0",
+ "tasks": [
+ {
+ "label": "build",
+ "command": "dotnet",
+ "type": "process",
+ "args": [
+ "build",
+ "${workspaceFolder}/Bücherwurm.csproj",
+ "/property:GenerateFullPaths=true",
+ "/consoleloggerparameters:NoSummary"
+ ],
+ "problemMatcher": "$msCompile"
+ },
+ {
+ "label": "publish",
+ "command": "dotnet",
+ "type": "process",
+ "args": [
+ "publish",
+ "${workspaceFolder}/Bücherwurm.csproj",
+ "/property:GenerateFullPaths=true",
+ "/consoleloggerparameters:NoSummary"
+ ],
+ "problemMatcher": "$msCompile"
+ },
+ {
+ "label": "watch",
+ "command": "dotnet",
+ "type": "process",
+ "args": [
+ "watch",
+ "run",
+ "${workspaceFolder}/Bücherwurm.csproj",
+ "/property:GenerateFullPaths=true",
+ "/consoleloggerparameters:NoSummary"
+ ],
+ "problemMatcher": "$msCompile"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/Bücherwurm.csproj b/Bücherwurm.csproj
similarity index 65%
rename from src/Bücherwurm.csproj
rename to Bücherwurm.csproj
index e5e0e16..d453e9a 100644
--- a/src/Bücherwurm.csproj
+++ b/Bücherwurm.csproj
@@ -2,7 +2,7 @@
Exe
- netcoreapp2.1
+ netcoreapp3.1
diff --git a/src/Program.cs b/Program.cs
similarity index 83%
rename from src/Program.cs
rename to Program.cs
index 8bf0539..e95397f 100644
--- a/src/Program.cs
+++ b/Program.cs
@@ -1,13 +1,12 @@
-using System;
-
-namespace Bücherwurm
-{
- class Program
- {
- static void Main(string[] args)
- {
- Console.WriteLine("Hello World!");
- }
- }
-
-}
\ No newline at end of file
+using System;
+
+namespace Bücherwurm
+{
+ class Program
+ {
+ static void Main(string[] args)
+ {
+ Console.WriteLine("Hello World!");
+ }
+ }
+}
diff --git a/diagrams/classes.drawio b/diagrams/classes.drawio
index 1dd39a4..ac897f5 100644
--- a/diagrams/classes.drawio
+++ b/diagrams/classes.drawio
@@ -1 +1 @@
-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
\ No newline at end of file
+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
\ No newline at end of file
diff --git a/diagrams/classes.png b/diagrams/classes.png
index a871de8..0f72b5d 100644
Binary files a/diagrams/classes.png and b/diagrams/classes.png differ
diff --git a/src/.vscode/launch.json b/src/.vscode/launch.json
deleted file mode 100644
index 127e1b0..0000000
--- a/src/.vscode/launch.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- // Use IntelliSense to learn about possible attributes.
- // Hover to view descriptions of existing attributes.
- // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
- "version": "0.2.0",
- "configurations": [
-
- {
- "name": ".NET Core Launch (console)",
- "type": "coreclr",
- "request": "launch",
- "preLaunchTask": "build",
- "program": "${workspaceFolder}/bin/Debug/netcoreapp1.1/Bücherwurm.dll>",
- "args": [],
- "cwd": "${workspaceFolder}",
- "stopAtEntry": false,
- "console": "internalConsole"
- }
-
-
- ]
-}
\ No newline at end of file
diff --git a/src/.vscode/tasks.json b/src/.vscode/tasks.json
deleted file mode 100644
index 31c32bd..0000000
--- a/src/.vscode/tasks.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- // See https://go.microsoft.com/fwlink/?LinkId=733558
- // for the documentation about the tasks.json format
- "version": "2.0.0",
- "tasks": [
- {
- "label": "build",
- "command": "dotnet",
- "type": "shell",
- "args": [
- "build",
- // Ask dotnet build to generate full paths for file names.
- "/property:GenerateFullPaths=true",
- // Do not generate summary otherwise it leads to duplicate errors in Problems panel
- "/consoleloggerparameters:NoSummary"
- ],
- "group": "build",
- "presentation": {
- "reveal": "silent"
- },
- "problemMatcher": "$msCompile"
- }
- ]
-}
\ No newline at end of file
diff --git a/src/Bücherwurm.sln b/src/Bücherwurm.sln
deleted file mode 100644
index d2b250e..0000000
--- a/src/Bücherwurm.sln
+++ /dev/null
@@ -1,34 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.26124.0
-MinimumVisualStudioVersion = 15.0.26124.0
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bücherwurm", "Bücherwurm.csproj", "{1C04CF26-2AC0-4236-BC6F-71230080FC82}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Debug|x64 = Debug|x64
- Debug|x86 = Debug|x86
- Release|Any CPU = Release|Any CPU
- Release|x64 = Release|x64
- Release|x86 = Release|x86
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {1C04CF26-2AC0-4236-BC6F-71230080FC82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1C04CF26-2AC0-4236-BC6F-71230080FC82}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1C04CF26-2AC0-4236-BC6F-71230080FC82}.Debug|x64.ActiveCfg = Debug|Any CPU
- {1C04CF26-2AC0-4236-BC6F-71230080FC82}.Debug|x64.Build.0 = Debug|Any CPU
- {1C04CF26-2AC0-4236-BC6F-71230080FC82}.Debug|x86.ActiveCfg = Debug|Any CPU
- {1C04CF26-2AC0-4236-BC6F-71230080FC82}.Debug|x86.Build.0 = Debug|Any CPU
- {1C04CF26-2AC0-4236-BC6F-71230080FC82}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1C04CF26-2AC0-4236-BC6F-71230080FC82}.Release|Any CPU.Build.0 = Release|Any CPU
- {1C04CF26-2AC0-4236-BC6F-71230080FC82}.Release|x64.ActiveCfg = Release|Any CPU
- {1C04CF26-2AC0-4236-BC6F-71230080FC82}.Release|x64.Build.0 = Release|Any CPU
- {1C04CF26-2AC0-4236-BC6F-71230080FC82}.Release|x86.ActiveCfg = Release|Any CPU
- {1C04CF26-2AC0-4236-BC6F-71230080FC82}.Release|x86.Build.0 = Release|Any CPU
- EndGlobalSection
-EndGlobal