diff --git a/GameContract/Class1.cs b/GameContract/Class1.cs
deleted file mode 100644
index 1f41244..0000000
--- a/GameContract/Class1.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-namespace GameContract
-{
- public class Class1
- {
-
- }
-}
\ No newline at end of file
diff --git a/GameContract/GameContract.csproj b/GameContract/GameContract.csproj
index cfadb03..044def4 100644
--- a/GameContract/GameContract.csproj
+++ b/GameContract/GameContract.csproj
@@ -6,4 +6,8 @@
enable
+
+
+
+
diff --git a/GameContract/IExpenseRepository.cs b/GameContract/IExpenseRepository.cs
new file mode 100644
index 0000000..365cbe2
--- /dev/null
+++ b/GameContract/IExpenseRepository.cs
@@ -0,0 +1,9 @@
+using GameModel;
+
+namespace GameContract
+{
+ public interface IExpenseRepository
+ {
+ IEnumerable GetAll();
+ }
+}
\ No newline at end of file
diff --git a/GameHandler.UnitTests/GameHandler.UnitTests.csproj b/GameHandler.UnitTests/GameHandler.UnitTests.csproj
index 6bea1db..ab724bd 100644
--- a/GameHandler.UnitTests/GameHandler.UnitTests.csproj
+++ b/GameHandler.UnitTests/GameHandler.UnitTests.csproj
@@ -10,11 +10,18 @@
-
-
-
-
-
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
diff --git a/GameHandler.UnitTests/Mocks/FakeExpenseRepository.cs b/GameHandler.UnitTests/Mocks/FakeExpenseRepository.cs
new file mode 100644
index 0000000..587a267
--- /dev/null
+++ b/GameHandler.UnitTests/Mocks/FakeExpenseRepository.cs
@@ -0,0 +1,29 @@
+using GameContract;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace GameModel.Mocks
+{
+ public class FakeExpenseRepository : IExpenseRepository
+ {
+ Expense[] Data = new[] {
+ Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.Sink }, "Gosse", 0.5m, false),
+ Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.FullSink }, "Gosse bei Anwurf", 1m, false),
+ Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.Circle }, "Kranz", 1m, true),
+ Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.NinePins }, "alle Neune", 1m, true),
+ Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.Eliminated }, "Ausgeschieden", 0.5m, false),
+ Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.NoWood }, "kein Holz", 0.5m, false),
+ Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.Bell }, "Klingen", 0.5m, false),
+ Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.FirstThrowFail }, "Anwurffehler", 0.5m, false),
+ Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.ExpensePoint }, "Strafpunkt, z.B. im \"Scheißspiel\"", 0.5m, false),
+ };
+
+ public IEnumerable GetAll()
+ {
+ return Data;
+ }
+ }
+}
diff --git a/GameHandler.UnitTests/PinPictureTests.cs b/GameHandler.UnitTests/PinPictureTests.cs
index 734195a..179dc34 100644
--- a/GameHandler.UnitTests/PinPictureTests.cs
+++ b/GameHandler.UnitTests/PinPictureTests.cs
@@ -2,6 +2,7 @@
using GameModel;
using GameModel.Exceptions;
using NuGet.Frameworks;
+using NUnit.Framework.Legacy;
using System.Collections;
using System.Numerics;
diff --git a/GameHandler/ExpenseHandler.cs b/GameHandler/ExpenseHandler.cs
new file mode 100644
index 0000000..8a3022a
--- /dev/null
+++ b/GameHandler/ExpenseHandler.cs
@@ -0,0 +1,23 @@
+using GameContract;
+using GameModel.DeathGame;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace GameHandler
+{
+ public class ExpenseHandler
+ {
+ //public delegate void OnExpense(MemberExpense memberExpense);
+
+ IExpenseRepository _expenseRepository;
+
+ public ExpenseHandler(IExpenseRepository expenseRepository)
+ {
+ _expenseRepository = expenseRepository;
+ }
+
+ }
+}
diff --git a/GameHandler/MainHandler.cs b/GameHandler/MainHandler.cs
new file mode 100644
index 0000000..d29c5f5
--- /dev/null
+++ b/GameHandler/MainHandler.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace GameHandler
+{
+ internal class MainHandler
+ {
+
+ }
+}
diff --git a/GameModel/Expense.cs b/GameModel/Expense.cs
new file mode 100644
index 0000000..4691fef
--- /dev/null
+++ b/GameModel/Expense.cs
@@ -0,0 +1,16 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace GameModel
+{
+ public record Expense(Guid Guid, ExpenseType ExpenseType, ExpenseTrigger[] ExpenseTriggers, string Name, decimal Price, bool IsInverse)
+ {
+ public static Expense Create(ExpenseType ExpenseType, ExpenseTrigger[] ExpenseTriggers, string Name, decimal Price, bool IsInverse)
+ {
+ return new Expense(Guid.NewGuid(), ExpenseType, ExpenseTriggers, Name, Price, IsInverse);
+ }
+ }
+}
diff --git a/GameModel/ExpenseType.cs b/GameModel/ExpenseType.cs
new file mode 100644
index 0000000..4f83a39
--- /dev/null
+++ b/GameModel/ExpenseType.cs
@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace GameModel
+{
+ public enum ExpenseType
+ {
+ Monetary,
+ Material
+ }
+}
diff --git a/GameModel/MemberExpense.cs b/GameModel/MemberExpense.cs
new file mode 100644
index 0000000..3485066
--- /dev/null
+++ b/GameModel/MemberExpense.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace GameModel
+{
+ public record MemberExpense(Guid ExpenseGuid, int MemberId, ExpenseType ExpenseType)
+ {
+ }
+}