diff --git a/.gitignore b/.gitignore
index c4aec5c..a3c55d6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,11 +1,5 @@
/.vs/*
-/KanSan/bin/Debug/*
-/KanSan/obj/Debug/*
-/KanSan/obj/*
-/KanSan.Base/bin/*
-/KanSan.Base/kansan.db
-/KanSan.Base/obj/*
-/KanSan/version.txt
-/KanSan.ViewModel/bin/*
-/KanSan.ViewModel/obj/*
+*/bin/*
*/version.txt
+*/bin/*
+*/obj/*
diff --git a/ConsoleClient/ConsoleClient.csproj b/ConsoleClient/ConsoleClient.csproj
new file mode 100644
index 0000000..a4092ac
--- /dev/null
+++ b/ConsoleClient/ConsoleClient.csproj
@@ -0,0 +1,23 @@
+
+
+
+ Exe
+ netcoreapp3.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PreserveNewest
+
+
+
+
diff --git a/ConsoleClient/Program.cs b/ConsoleClient/Program.cs
new file mode 100644
index 0000000..cee53b4
--- /dev/null
+++ b/ConsoleClient/Program.cs
@@ -0,0 +1,29 @@
+
+using KanSan.CrossCutting.DataClasses;
+using KanSan.DependencyInjection.Mappings;
+using KundenManagement.Contract;
+using Ninject;
+using System;
+using System.Collections.Generic;
+
+namespace ConsoleClient
+{
+ class Program
+ {
+ static void Main(string[] args)
+ {
+ StandardKernel kernel = new StandardKernel();
+ new KernelInitializer().Initialize(kernel);
+
+ IKundeManager manager = kernel.Get();
+
+ List kunden = manager.GetAllKunden();
+
+ kunden.ForEach(a => Console.WriteLine(a.Vorname + " " + a.ID));
+
+ Console.WriteLine("Hello World!");
+
+ Console.ReadKey();
+ }
+ }
+}
diff --git a/ConsoleClient/kunden.csv b/ConsoleClient/kunden.csv
new file mode 100644
index 0000000..8ecde3c
--- /dev/null
+++ b/ConsoleClient/kunden.csv
@@ -0,0 +1,2 @@
+1,Damian,Bodde
+2,Cynthia,Schreuder
\ No newline at end of file
diff --git a/DataClasses/DataClasses.csproj b/DataClasses/DataClasses.csproj
new file mode 100644
index 0000000..76fc1b4
--- /dev/null
+++ b/DataClasses/DataClasses.csproj
@@ -0,0 +1,8 @@
+
+
+
+ netcoreapp3.1
+ KanSan.CrossCutting.DataClasses
+
+
+
diff --git a/DataClasses/Kunde.cs b/DataClasses/Kunde.cs
new file mode 100644
index 0000000..18a1b5a
--- /dev/null
+++ b/DataClasses/Kunde.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace KanSan.CrossCutting.DataClasses
+{
+ public class Kunde
+ {
+ public int ID { get; set; }
+ public Guid GuidNr { get; set; }
+ public string Vorname { get; set; }
+ public string Nachname { get; set; }
+ public string Strasse { get; set; }
+ public string PLZ { get; set; }
+ public string Ort { get; set; }
+ //public List Baustellen { get; } = new List();
+ }
+}
diff --git a/DataStoring.CSV/DataStoring.CSV.csproj b/DataStoring.CSV/DataStoring.CSV.csproj
new file mode 100644
index 0000000..a07c700
--- /dev/null
+++ b/DataStoring.CSV/DataStoring.CSV.csproj
@@ -0,0 +1,11 @@
+
+
+
+ netcoreapp3.1
+
+
+
+
+
+
+
diff --git a/DataStoring.CSV/KundenRepository.cs b/DataStoring.CSV/KundenRepository.cs
new file mode 100644
index 0000000..d90011b
--- /dev/null
+++ b/DataStoring.CSV/KundenRepository.cs
@@ -0,0 +1,23 @@
+using KanSan.CrossCutting.DataClasses;
+using KanSan.DataStoring.Contract;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+
+namespace KanSan.DataStoring.CSV
+{
+ public class KundenRepository : IKundenRepository
+ {
+ public List Query => File
+ .ReadAllLines("kunden.csv")
+ .Select(l => l.Split(','))
+ .Select(p => new Kunde
+ {
+ ID = int.Parse(p[0]),
+ Vorname = p[1],
+ Nachname = p[2]
+ })
+ .ToList();
+ }
+}
diff --git a/DataStoring.Contract/DataStoring.Contract.csproj b/DataStoring.Contract/DataStoring.Contract.csproj
new file mode 100644
index 0000000..336022d
--- /dev/null
+++ b/DataStoring.Contract/DataStoring.Contract.csproj
@@ -0,0 +1,11 @@
+
+
+
+ netcoreapp3.1
+
+
+
+
+
+
+
diff --git a/DataStoring.Contract/IKundenRepository.cs b/DataStoring.Contract/IKundenRepository.cs
new file mode 100644
index 0000000..2e783e8
--- /dev/null
+++ b/DataStoring.Contract/IKundenRepository.cs
@@ -0,0 +1,12 @@
+using KanSan.CrossCutting.DataClasses;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace KanSan.DataStoring.Contract
+{
+ public interface IKundenRepository
+ {
+ List Query { get; }
+ }
+}
diff --git a/DataStoring.Contract/IRepository.cs b/DataStoring.Contract/IRepository.cs
new file mode 100644
index 0000000..fcba3bb
--- /dev/null
+++ b/DataStoring.Contract/IRepository.cs
@@ -0,0 +1,24 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Linq.Expressions;
+using System.Text;
+
+namespace KanSan.DataStoring.Contract
+{
+ public interface IRepository where TEntity : class
+ {
+ void Delete(TEntity entityToDelete);
+ void Delete(int id);
+ IEnumerable GetAll(string include);
+ IEnumerable Get(
+ Expression> filter = null,
+ Func, IOrderedQueryable> orderBy = null,
+ string includeProperties = "");
+ TEntity GetByID(object id);
+ void Insert(TEntity entity);
+ void Update(TEntity entity);
+ IQueryable Include(params Expression>[] includes);
+ IQueryable Query { get; }
+ }
+}
diff --git a/DataStoring.EF/DataStoring.EF.csproj b/DataStoring.EF/DataStoring.EF.csproj
new file mode 100644
index 0000000..120b068
--- /dev/null
+++ b/DataStoring.EF/DataStoring.EF.csproj
@@ -0,0 +1,17 @@
+
+
+
+ netcoreapp3.1
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/DataStoring.EF/KanSanContext.cs b/DataStoring.EF/KanSanContext.cs
new file mode 100644
index 0000000..9e9ee07
--- /dev/null
+++ b/DataStoring.EF/KanSanContext.cs
@@ -0,0 +1,31 @@
+using KanSan.CrossCutting.DataClasses;
+using Microsoft.EntityFrameworkCore;
+
+namespace DataStoring.EF
+{
+ public class KanSanContext : DbContext
+ {
+ public DbSet Projekte { get; set; }
+ public DbSet Kunden { get; set; }
+ public DbSet Kanaele { get; set; }
+ public DbSet SewerPoints { get; set; }
+ public DbSet Schaeden { get; set; }
+ public DbSet Sanierungskonzept { get; set; }
+ public DbSet Taetigkeiten { get; set; }
+ public DbSet LeistungsverzeichnisPositionen { get; set; }
+ public DbSet LeistungsverzeichnisBaustellen { get; set; }
+ public DbSet Fahrzeuge { get; set; }
+ public DbSet KurzlinerSanierung { get; set; }
+ public DbSet HutprofilSanierung { get; set; }
+
+ public KanSanContext()
+ {
+
+ }
+
+ protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
+ {
+ optionsBuilder.UseNpgsql("Host = 192.168.122.1; Database = kanSan; Username = husky; Password = bodde05");
+ }
+ }
+}
\ No newline at end of file
diff --git a/DataStoring.EF/Repository.cs b/DataStoring.EF/Repository.cs
new file mode 100644
index 0000000..faaf8e6
--- /dev/null
+++ b/DataStoring.EF/Repository.cs
@@ -0,0 +1,111 @@
+using KanSan.DataStoring.Contract;
+using Microsoft.EntityFrameworkCore;
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Linq.Expressions;
+using System.Text;
+
+namespace DataStoring.EF
+{
+ public class Repository : IRepository where TEntity : class
+ {
+ private readonly KanSanContext _db;
+ private readonly DbSet dbSet;
+
+ public IQueryable Query => dbSet;
+
+ public Repository(KanSanContext db)
+ {
+ _db = db;
+ this.dbSet = db.Set();
+ }
+ public virtual void Delete(TEntity entityToDelete)
+ {
+ if (_db.Entry(entityToDelete).State == EntityState.Detached)
+ dbSet.Attach(entityToDelete);
+ dbSet.Remove(entityToDelete);
+ }
+
+ public void Delete(int id)
+ {
+ try
+ {
+ var entity = _db.Set().Find(id);
+ if(entity == null)
+ {
+ throw new Exception("Id not found");
+ }
+ }
+ catch(Exception e)
+ {
+ throw new Exception("Cant delete id");
+ }
+
+ }
+
+ public IEnumerable GetAll(string include)
+ {
+ return dbSet.Include(include);
+ }
+
+ public IEnumerable Get(Expression> filter = null, Func, IOrderedQueryable> orderBy = null, string includeProperties = "")
+ {
+ IQueryable query = dbSet;
+
+
+ if (filter != null)
+ {
+ query = query.Where(filter);
+ }
+
+ if (includeProperties != null)
+ {
+ foreach (var includeProperty in includeProperties.Split
+ (new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
+ {
+ query = query.Include(includeProperty);
+ }
+ }
+
+
+ if (orderBy != null)
+ {
+ return orderBy(query).ToList();
+ }
+ else
+ {
+ return query.ToList();
+ }
+ }
+
+ public TEntity GetByID(object id)
+ {
+ return dbSet.Find(id);
+ }
+
+ public virtual void Insert(TEntity entity)
+ {
+ _db.Set().Add(entity);
+ _db.SaveChanges();
+
+ }
+
+ public IQueryable Include(params Expression>[] includeExpressions)
+ {
+ IQueryable query = null;
+ foreach (var include in includeExpressions)
+ {
+ query = dbSet.Include(include);
+ }
+ return query ?? dbSet;
+ }
+
+ public void Update(TEntity entity)
+ {
+ _db.Entry(entity).State = EntityState.Modified;
+ _db.SaveChanges();
+ }
+ }
+}
diff --git a/KanSan.Base/KanSan.Base.csproj b/KanSan.Base/KanSan.Base.csproj
index e2cc664..8334a52 100644
--- a/KanSan.Base/KanSan.Base.csproj
+++ b/KanSan.Base/KanSan.Base.csproj
@@ -25,4 +25,8 @@
+
+
+
+
diff --git a/KanSan.Base/KanSanContext.cs b/KanSan.Base/KanSanContext.cs
index f9bbfa6..cd90ecb 100644
--- a/KanSan.Base/KanSanContext.cs
+++ b/KanSan.Base/KanSanContext.cs
@@ -21,7 +21,7 @@ namespace KanSan.Base
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
- optionsBuilder.UseNpgsql("Host = localhost; Database = kanSan; Username = kansan; Password = kansan");
+ optionsBuilder.UseNpgsql("Host = 192.168.122.1; Database = kanSan; Username = husky; Password = bodde05");
//optionsBuilder.UseSqlite("Data Source=kansan.db");
}
}
diff --git a/KanSan.Base/Models/Baustelle.cs b/KanSan.DataClasses/Baustelle.cs
similarity index 70%
rename from KanSan.Base/Models/Baustelle.cs
rename to KanSan.DataClasses/Baustelle.cs
index 843d4e0..099de59 100644
--- a/KanSan.Base/Models/Baustelle.cs
+++ b/KanSan.DataClasses/Baustelle.cs
@@ -1,11 +1,10 @@
-using KanSan.Base.Interfaces;
-using System;
+using System;
using System.Collections.Generic;
-using System.Text;
-namespace KanSan.Base.Models
+
+namespace KanSan.CrossCutting.DataClasses
{
- public class Baustelle : IDatabaseEntry
+ public class Baustelle
{
public int ID { get; set; }
public Guid GuidNr { get; set; }
diff --git a/KanSan.Base/Models/BaustelleLeistungsverzeichnisReferenz.cs b/KanSan.DataClasses/BaustelleLeistungsverzeichnisReferenz.cs
similarity index 64%
rename from KanSan.Base/Models/BaustelleLeistungsverzeichnisReferenz.cs
rename to KanSan.DataClasses/BaustelleLeistungsverzeichnisReferenz.cs
index 803c341..01e6353 100644
--- a/KanSan.Base/Models/BaustelleLeistungsverzeichnisReferenz.cs
+++ b/KanSan.DataClasses/BaustelleLeistungsverzeichnisReferenz.cs
@@ -1,11 +1,10 @@
-using KanSan.Base.Interfaces;
-using System;
+using System;
using System.Collections.Generic;
using System.Text;
-namespace KanSan.Base.Models
+namespace KanSan.CrossCutting.DataClasses
{
- public class BaustelleLeistungsverzeichnisReferenz : IDatabaseEntry
+ public class BaustelleLeistungsverzeichnisReferenz
{
public int ID { get; set; }
public Guid GuidNr { get; set; }
diff --git a/KanSan.Base/Enums/EMaterial.cs b/KanSan.DataClasses/Enums/EMaterial.cs
similarity index 65%
rename from KanSan.Base/Enums/EMaterial.cs
rename to KanSan.DataClasses/Enums/EMaterial.cs
index b7e4ad8..15d1a42 100644
--- a/KanSan.Base/Enums/EMaterial.cs
+++ b/KanSan.DataClasses/Enums/EMaterial.cs
@@ -1,4 +1,4 @@
-namespace KanSan.Base.Enums
+namespace KanSan.CrossCutting.DataClasses.Enums
{
public enum EMaterial
{
diff --git a/KanSan.Base/Enums/EPunktType.cs b/KanSan.DataClasses/Enums/EPunktType.cs
similarity index 69%
rename from KanSan.Base/Enums/EPunktType.cs
rename to KanSan.DataClasses/Enums/EPunktType.cs
index 34aae0d..4026fd2 100644
--- a/KanSan.Base/Enums/EPunktType.cs
+++ b/KanSan.DataClasses/Enums/EPunktType.cs
@@ -1,4 +1,4 @@
-namespace KanSan.Base.Enums
+namespace KanSan.CrossCutting.DataClasses.Enums
{
public enum EPunktType
{
diff --git a/KanSan.Base/Enums/ESanierung.cs b/KanSan.DataClasses/Enums/ESanierung.cs
similarity index 69%
rename from KanSan.Base/Enums/ESanierung.cs
rename to KanSan.DataClasses/Enums/ESanierung.cs
index e298635..1a19ab7 100644
--- a/KanSan.Base/Enums/ESanierung.cs
+++ b/KanSan.DataClasses/Enums/ESanierung.cs
@@ -1,4 +1,4 @@
-namespace KanSan.Base.Enums
+namespace KanSan.CrossCutting.DataClasses.Enums
{
public enum ESanierung
{
diff --git a/KanSan.Base/Models/Fahrzeug.cs b/KanSan.DataClasses/Fahrzeug.cs
similarity index 54%
rename from KanSan.Base/Models/Fahrzeug.cs
rename to KanSan.DataClasses/Fahrzeug.cs
index 50eb09c..dbda727 100644
--- a/KanSan.Base/Models/Fahrzeug.cs
+++ b/KanSan.DataClasses/Fahrzeug.cs
@@ -1,9 +1,8 @@
-using KanSan.Base.Interfaces;
-using System;
+using System;
-namespace KanSan.Base.Models
+namespace KanSan.CrossCutting.DataClasses
{
- public class Fahrzeug : IDatabaseEntry
+ public class Fahrzeug
{
public int ID { get; set; }
public Guid GuidNr { get; set; }
diff --git a/KanSan.Base/Models/GueteschutzProtokoll.cs b/KanSan.DataClasses/GueteschutzProtokoll.cs
similarity index 81%
rename from KanSan.Base/Models/GueteschutzProtokoll.cs
rename to KanSan.DataClasses/GueteschutzProtokoll.cs
index ff2947a..0ea58e0 100644
--- a/KanSan.Base/Models/GueteschutzProtokoll.cs
+++ b/KanSan.DataClasses/GueteschutzProtokoll.cs
@@ -1,11 +1,10 @@
-using KanSan.Base.Interfaces;
-using System;
+using System;
using System.Collections.Generic;
using System.Text;
-namespace KanSan.Base.Models
+namespace KanSan.CrossCutting.DataClasses
{
- public abstract class GueteschutzProtokoll : IDatabaseEntry
+ public abstract class GueteschutzProtokoll
{
public int ID { get; set; }
public Guid GuidNr { get; set; }
diff --git a/KanSan.Base/Models/HutprofilSan.cs b/KanSan.DataClasses/HutprofilSan.cs
similarity index 90%
rename from KanSan.Base/Models/HutprofilSan.cs
rename to KanSan.DataClasses/HutprofilSan.cs
index 0efde60..a8bd0b2 100644
--- a/KanSan.Base/Models/HutprofilSan.cs
+++ b/KanSan.DataClasses/HutprofilSan.cs
@@ -2,7 +2,7 @@
using System.Collections.Generic;
using System.Text;
-namespace KanSan.Base.Models
+namespace KanSan.CrossCutting.DataClasses
{
public class HutprofilSan : PHarzSanierung
{
diff --git a/KanSan.DataClasses/KanSan.DataClasses.csproj b/KanSan.DataClasses/KanSan.DataClasses.csproj
new file mode 100644
index 0000000..cb63190
--- /dev/null
+++ b/KanSan.DataClasses/KanSan.DataClasses.csproj
@@ -0,0 +1,7 @@
+
+
+
+ netcoreapp3.1
+
+
+
diff --git a/KanSan.Base/Models/Kunde.cs b/KanSan.DataClasses/Kunde.cs
similarity index 78%
rename from KanSan.Base/Models/Kunde.cs
rename to KanSan.DataClasses/Kunde.cs
index 92e7492..f4c52d0 100644
--- a/KanSan.Base/Models/Kunde.cs
+++ b/KanSan.DataClasses/Kunde.cs
@@ -1,11 +1,10 @@
-using KanSan.Base.Interfaces;
-using System;
+using System;
using System.Collections.Generic;
using System.Text;
-namespace KanSan.Base.Models
+namespace KanSan.CrossCutting.DataClasses
{
- public class Kunde : IDatabaseEntry
+ public class Kunde
{
public int ID { get; set; }
public Guid GuidNr { get; set; }
diff --git a/KanSan.Base/Models/KurzlinerSan.cs b/KanSan.DataClasses/KurzlinerSan.cs
similarity index 83%
rename from KanSan.Base/Models/KurzlinerSan.cs
rename to KanSan.DataClasses/KurzlinerSan.cs
index 80d9c6d..35381d0 100644
--- a/KanSan.Base/Models/KurzlinerSan.cs
+++ b/KanSan.DataClasses/KurzlinerSan.cs
@@ -2,7 +2,7 @@
using System.Collections.Generic;
using System.Text;
-namespace KanSan.Base.Models
+namespace KanSan.CrossCutting.DataClasses
{
public class KurzlinerSan : PHarzSanierung
{
diff --git a/KanSan.Base/Models/LeistungsverzeichnisPosition.cs b/KanSan.DataClasses/LeistungsverzeichnisPosition.cs
similarity index 70%
rename from KanSan.Base/Models/LeistungsverzeichnisPosition.cs
rename to KanSan.DataClasses/LeistungsverzeichnisPosition.cs
index 25dad46..209a0ab 100644
--- a/KanSan.Base/Models/LeistungsverzeichnisPosition.cs
+++ b/KanSan.DataClasses/LeistungsverzeichnisPosition.cs
@@ -1,9 +1,8 @@
-using KanSan.Base.Interfaces;
-using System;
+using System;
-namespace KanSan.Base.Models
+namespace KanSan.CrossCutting.DataClasses
{
- public class LeistungsverzeichnisPosition : IDatabaseEntry
+ public class LeistungsverzeichnisPosition
{
public int ID { get; set; }
public Guid GuidNr { get; set; }
diff --git a/KanSan.Base/Models/PHarzSanierung.cs b/KanSan.DataClasses/PHarzSanierung.cs
similarity index 95%
rename from KanSan.Base/Models/PHarzSanierung.cs
rename to KanSan.DataClasses/PHarzSanierung.cs
index c711950..83dfa81 100644
--- a/KanSan.Base/Models/PHarzSanierung.cs
+++ b/KanSan.DataClasses/PHarzSanierung.cs
@@ -2,7 +2,7 @@
using System.Collections.Generic;
using System.Text;
-namespace KanSan.Base.Models
+namespace KanSan.CrossCutting.DataClasses
{
public class PHarzSanierung : GueteschutzProtokoll
{
diff --git a/KanSan.Base/Models/Projekt.cs b/KanSan.DataClasses/Projekt.cs
similarity index 70%
rename from KanSan.Base/Models/Projekt.cs
rename to KanSan.DataClasses/Projekt.cs
index dc824aa..5a0b113 100644
--- a/KanSan.Base/Models/Projekt.cs
+++ b/KanSan.DataClasses/Projekt.cs
@@ -1,11 +1,10 @@
-using KanSan.Base.Interfaces;
-using System;
+using System;
using System.Collections.Generic;
using System.Text;
-namespace KanSan.Base.Models
+namespace KanSan.CrossCutting.DataClasses
{
- public class Projekt : IDatabaseEntry
+ public class Projekt
{
public int ID { get; set; }
public Guid GuidNr { get; set; }
diff --git a/KanSan.Base/Models/Sanierungskonzept.cs b/KanSan.DataClasses/Sanierungskonzept.cs
similarity index 67%
rename from KanSan.Base/Models/Sanierungskonzept.cs
rename to KanSan.DataClasses/Sanierungskonzept.cs
index 11e0320..493107d 100644
--- a/KanSan.Base/Models/Sanierungskonzept.cs
+++ b/KanSan.DataClasses/Sanierungskonzept.cs
@@ -1,11 +1,10 @@
-using KanSan.Base.Enums;
-using KanSan.Base.Interfaces;
-using System;
+using System;
using System.Collections.Generic;
+using KanSan.CrossCutting.DataClasses.Enums;
-namespace KanSan.Base.Models
+namespace KanSan.CrossCutting.DataClasses
{
- public class Sanierungskonzept : IDatabaseEntry
+ public class Sanierungskonzept
{
public int ID { get; set; }
public Guid GuidNr { get; set; }
diff --git a/KanSan.Base/Models/Schaeden.cs b/KanSan.DataClasses/Schaeden.cs
similarity index 85%
rename from KanSan.Base/Models/Schaeden.cs
rename to KanSan.DataClasses/Schaeden.cs
index bcdca58..3431bed 100644
--- a/KanSan.Base/Models/Schaeden.cs
+++ b/KanSan.DataClasses/Schaeden.cs
@@ -1,10 +1,9 @@
-using KanSan.Base.Enums;
-using KanSan.Base.Interfaces;
+using KanSan.CrossCutting.DataClasses.Enums;
using System;
-namespace KanSan.Base.Models
+namespace KanSan.CrossCutting.DataClasses
{
- public class Schaeden : IDatabaseEntry
+ public class Schaeden
{
public int ID { get; set; }
public Guid GuidNr { get; set; }
diff --git a/KanSan.Base/Models/Sewer.cs b/KanSan.DataClasses/Sewer.cs
similarity index 89%
rename from KanSan.Base/Models/Sewer.cs
rename to KanSan.DataClasses/Sewer.cs
index 9f55376..8660df4 100644
--- a/KanSan.Base/Models/Sewer.cs
+++ b/KanSan.DataClasses/Sewer.cs
@@ -1,11 +1,10 @@
-using KanSan.Base.Enums;
-using KanSan.Base.Interfaces;
+using KanSan.CrossCutting.DataClasses.Enums;
using System;
using System.Collections.Generic;
-namespace KanSan.Base.Models
+namespace KanSan.CrossCutting.DataClasses
{
- public class Sewer : IDatabaseEntry
+ public class Sewer
{
public int ID { get; set; }
public Guid GuidNr { get; set; }
diff --git a/KanSan.Base/Models/SewerPoint.cs b/KanSan.DataClasses/SewerPoint.cs
similarity index 54%
rename from KanSan.Base/Models/SewerPoint.cs
rename to KanSan.DataClasses/SewerPoint.cs
index 9d6d785..352e63f 100644
--- a/KanSan.Base/Models/SewerPoint.cs
+++ b/KanSan.DataClasses/SewerPoint.cs
@@ -1,9 +1,8 @@
-using KanSan.Base.Interfaces;
-using System;
+using System;
-namespace KanSan.Base.Models
+namespace KanSan.CrossCutting.DataClasses
{
- public class SewerPoint : IDatabaseEntry
+ public class SewerPoint
{
public int ID { get; set; }
public Guid GuidNr { get; set; }
diff --git a/KanSan.Base/Models/Taetigkeiten.cs b/KanSan.DataClasses/Taetigkeiten.cs
similarity index 82%
rename from KanSan.Base/Models/Taetigkeiten.cs
rename to KanSan.DataClasses/Taetigkeiten.cs
index 7fb1af3..1b308c8 100644
--- a/KanSan.Base/Models/Taetigkeiten.cs
+++ b/KanSan.DataClasses/Taetigkeiten.cs
@@ -1,9 +1,8 @@
-using KanSan.Base.Interfaces;
-using System;
+using System;
-namespace KanSan.Base.Models
+namespace KanSan.CrossCutting.DataClasses
{
- public class Taetigkeiten : IDatabaseEntry
+ public class Taetigkeiten
{
public int ID { get; set; }
public Guid GuidNr { get; set; }
diff --git a/KanSan.ViewModel/MainWindowViewModel.cs b/KanSan.ViewModel/MainWindowViewModel.cs
index e155da1..a6ebdc5 100644
--- a/KanSan.ViewModel/MainWindowViewModel.cs
+++ b/KanSan.ViewModel/MainWindowViewModel.cs
@@ -186,6 +186,7 @@ namespace KanSan.ViewModel
}
public MainWindowViewModel()
{
+ //InitDB();
LadeRegistry();
LoadBaustellenLeistungsverzeichnis();
}
@@ -194,5 +195,27 @@ namespace KanSan.ViewModel
{
}
+
+ void InitDB()
+ {
+ Projekt projekt = new Projekt();
+
+ Kunde kunde = new Kunde();
+ kunde.Vorname = "Damian";
+ kunde.Nachname = "Bodde";
+
+ kunde.GuidNr = Guid.NewGuid();
+ projekt.Kunde = kunde;
+ projekt.GuidNr = Guid.NewGuid();
+
+ Baustelle baustelle = new Baustelle();
+ baustelle.Projekt = projekt;
+ baustelle.GuidNr = Guid.NewGuid();
+
+
+
+ unitOfWork.ProjekteRepository.Insert(projekt);
+ unitOfWork.Commit();
+ }
}
}
diff --git a/KanSan.sln b/KanSan.sln
index c20820a..7236163 100644
--- a/KanSan.sln
+++ b/KanSan.sln
@@ -7,7 +7,27 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KanSan", "KanSan\KanSan.csp
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KanSan.Base", "KanSan.Base\KanSan.Base.csproj", "{2184A91C-8DFD-45DD-B83F-5D036BADEA52}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KanSan.ViewModel", "KanSan.ViewModel\KanSan.ViewModel.csproj", "{77F25493-7A1C-4F03-92CF-D0EA00328181}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KanSan.ViewModel", "KanSan.ViewModel\KanSan.ViewModel.csproj", "{77F25493-7A1C-4F03-92CF-D0EA00328181}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KanSan.DataClasses", "KanSan.DataClasses\KanSan.DataClasses.csproj", "{6C30FBF5-D894-4055-A899-4702EDBEE224}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataStoring.Contract", "DataStoring.Contract\DataStoring.Contract.csproj", "{212025C0-50A2-4D6B-9B4E-E226CAA4E551}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataStoring.CSV", "DataStoring.CSV\DataStoring.CSV.csproj", "{5CF0EC47-9C81-40A5-8EBA-F1DA3C8BC41E}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleClient", "ConsoleClient\ConsoleClient.csproj", "{2C721355-C42E-4DBB-A3B0-31C9CE68448C}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mappings", "Mappings\Mappings.csproj", "{2FB8401E-78BE-46A5-BE51-6A67029BC43F}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KundenManagement.Contract", "KundenManagement.Contract\KundenManagement.Contract.csproj", "{CE02508A-F590-4577-A88E-AA4ED6558C4F}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KundenManagement", "KundenManagment\KundenManagement.csproj", "{CFB14A1D-14D9-42D0-B9AD-27E8CAEA761B}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Domain", "Domain", "{2ED2E266-89C3-46C9-9B4E-BB52BBD4F305}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Data", "Data", "{890D5DD6-3258-4A65-ABF3-AFDFBE115BDC}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataStoring.EF", "DataStoring.EF\DataStoring.EF.csproj", "{177643C2-502C-4613-A00C-50429922D67D}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -27,10 +47,49 @@ Global
{77F25493-7A1C-4F03-92CF-D0EA00328181}.Debug|Any CPU.Build.0 = Debug|Any CPU
{77F25493-7A1C-4F03-92CF-D0EA00328181}.Release|Any CPU.ActiveCfg = Release|Any CPU
{77F25493-7A1C-4F03-92CF-D0EA00328181}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6C30FBF5-D894-4055-A899-4702EDBEE224}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6C30FBF5-D894-4055-A899-4702EDBEE224}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6C30FBF5-D894-4055-A899-4702EDBEE224}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6C30FBF5-D894-4055-A899-4702EDBEE224}.Release|Any CPU.Build.0 = Release|Any CPU
+ {212025C0-50A2-4D6B-9B4E-E226CAA4E551}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {212025C0-50A2-4D6B-9B4E-E226CAA4E551}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {212025C0-50A2-4D6B-9B4E-E226CAA4E551}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {212025C0-50A2-4D6B-9B4E-E226CAA4E551}.Release|Any CPU.Build.0 = Release|Any CPU
+ {5CF0EC47-9C81-40A5-8EBA-F1DA3C8BC41E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5CF0EC47-9C81-40A5-8EBA-F1DA3C8BC41E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5CF0EC47-9C81-40A5-8EBA-F1DA3C8BC41E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {5CF0EC47-9C81-40A5-8EBA-F1DA3C8BC41E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2C721355-C42E-4DBB-A3B0-31C9CE68448C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2C721355-C42E-4DBB-A3B0-31C9CE68448C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2C721355-C42E-4DBB-A3B0-31C9CE68448C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2C721355-C42E-4DBB-A3B0-31C9CE68448C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2FB8401E-78BE-46A5-BE51-6A67029BC43F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2FB8401E-78BE-46A5-BE51-6A67029BC43F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2FB8401E-78BE-46A5-BE51-6A67029BC43F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2FB8401E-78BE-46A5-BE51-6A67029BC43F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {CE02508A-F590-4577-A88E-AA4ED6558C4F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CE02508A-F590-4577-A88E-AA4ED6558C4F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CE02508A-F590-4577-A88E-AA4ED6558C4F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {CE02508A-F590-4577-A88E-AA4ED6558C4F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {CFB14A1D-14D9-42D0-B9AD-27E8CAEA761B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CFB14A1D-14D9-42D0-B9AD-27E8CAEA761B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CFB14A1D-14D9-42D0-B9AD-27E8CAEA761B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {CFB14A1D-14D9-42D0-B9AD-27E8CAEA761B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {177643C2-502C-4613-A00C-50429922D67D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {177643C2-502C-4613-A00C-50429922D67D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {177643C2-502C-4613-A00C-50429922D67D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {177643C2-502C-4613-A00C-50429922D67D}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {212025C0-50A2-4D6B-9B4E-E226CAA4E551} = {890D5DD6-3258-4A65-ABF3-AFDFBE115BDC}
+ {5CF0EC47-9C81-40A5-8EBA-F1DA3C8BC41E} = {890D5DD6-3258-4A65-ABF3-AFDFBE115BDC}
+ {CE02508A-F590-4577-A88E-AA4ED6558C4F} = {2ED2E266-89C3-46C9-9B4E-BB52BBD4F305}
+ {CFB14A1D-14D9-42D0-B9AD-27E8CAEA761B} = {2ED2E266-89C3-46C9-9B4E-BB52BBD4F305}
+ {177643C2-502C-4613-A00C-50429922D67D} = {890D5DD6-3258-4A65-ABF3-AFDFBE115BDC}
+ EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {BA021C9A-6B88-4B87-8189-93AC075F3D8F}
EndGlobalSection
diff --git a/KanSan/MainWindow.xaml.cs b/KanSan/MainWindow.xaml.cs
index 90af54a..5e4c960 100644
--- a/KanSan/MainWindow.xaml.cs
+++ b/KanSan/MainWindow.xaml.cs
@@ -140,6 +140,7 @@ namespace KanSan
rbLeistungsverzeichnis.IsChecked = false;
rbLeistungsverzeichnisBaustellen.IsChecked = false;
Kunde client = (DataContext as MainWindowViewModel).SelectedKunde;
+ //Debugger.Break();
if (client == null) return;
UCProjektList = new UI.UCProjektList(client);
UCProjektList.ProjektSelected += UCProjektList_ProjektSelected;
diff --git a/KundenManagement.Contract/IKundeManager.cs b/KundenManagement.Contract/IKundeManager.cs
new file mode 100644
index 0000000..04d6edf
--- /dev/null
+++ b/KundenManagement.Contract/IKundeManager.cs
@@ -0,0 +1,11 @@
+using KanSan.CrossCutting.DataClasses;
+using System;
+using System.Collections.Generic;
+
+namespace KundenManagement.Contract
+{
+ public interface IKundeManager
+ {
+ List GetAllKunden();
+ }
+}
diff --git a/KundenManagement.Contract/KundenManagement.Contract.csproj b/KundenManagement.Contract/KundenManagement.Contract.csproj
new file mode 100644
index 0000000..336022d
--- /dev/null
+++ b/KundenManagement.Contract/KundenManagement.Contract.csproj
@@ -0,0 +1,11 @@
+
+
+
+ netcoreapp3.1
+
+
+
+
+
+
+
diff --git a/KundenManagment/KundeManager.cs b/KundenManagment/KundeManager.cs
new file mode 100644
index 0000000..5e2bcb4
--- /dev/null
+++ b/KundenManagment/KundeManager.cs
@@ -0,0 +1,27 @@
+using KanSan.CrossCutting.DataClasses;
+using KanSan.DataStoring.Contract;
+using KundenManagement.Contract;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace KundenManagment
+{
+ public class KundeManager : IKundeManager
+ {
+
+ private readonly IRepository _repository;
+ public KundeManager(IRepository repository)
+ {
+
+ _repository = repository;
+ }
+ public List GetAllKunden()
+ {
+ return _repository
+ .Query
+ .Where(p => p.ID >= 0)
+ .ToList();
+ }
+ }
+}
diff --git a/KundenManagment/KundenManagement.csproj b/KundenManagment/KundenManagement.csproj
new file mode 100644
index 0000000..86fc61b
--- /dev/null
+++ b/KundenManagment/KundenManagement.csproj
@@ -0,0 +1,12 @@
+
+
+
+ netcoreapp3.1
+
+
+
+
+
+
+
+
diff --git a/Mappings/KernelInitializer.cs b/Mappings/KernelInitializer.cs
new file mode 100644
index 0000000..294197a
--- /dev/null
+++ b/Mappings/KernelInitializer.cs
@@ -0,0 +1,21 @@
+using DataStoring.EF;
+using KanSan.DataStoring.Contract;
+using KanSan.DataStoring.CSV;
+using KundenManagement.Contract;
+using KundenManagment;
+using Ninject;
+using System;
+
+namespace KanSan.DependencyInjection.Mappings
+{
+ public class KernelInitializer
+ {
+ public void Initialize(IKernel kernel)
+ {
+ kernel.Bind().ToSelf();
+ kernel.Bind(typeof(IRepository<>)).To(typeof(Repository<>));
+ //kernel.Bind().To();
+ kernel.Bind().To();
+ }
+ }
+}
diff --git a/Mappings/Mappings.csproj b/Mappings/Mappings.csproj
new file mode 100644
index 0000000..755e3e4
--- /dev/null
+++ b/Mappings/Mappings.csproj
@@ -0,0 +1,19 @@
+
+
+
+ netcoreapp3.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+