Compare commits

1 Commits

Author SHA1 Message Date
HuskyTeufel
7a733b92d2 Archetektur angefangen 2021-01-31 22:15:43 +01:00
44 changed files with 564 additions and 67 deletions

12
.gitignore vendored
View File

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

View File

@@ -0,0 +1,23 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Ninject" Version="3.3.4" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\KundenManagement.Contract\KundenManagement.Contract.csproj" />
<ProjectReference Include="..\Mappings\Mappings.csproj" />
</ItemGroup>
<ItemGroup>
<None Update="kunden.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>

29
ConsoleClient/Program.cs Normal file
View File

@@ -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<IKundeManager>();
List<Kunde> kunden = manager.GetAllKunden();
kunden.ForEach(a => Console.WriteLine(a.Vorname + " " + a.ID));
Console.WriteLine("Hello World!");
Console.ReadKey();
}
}
}

2
ConsoleClient/kunden.csv Normal file
View File

@@ -0,0 +1,2 @@
1,Damian,Bodde
2,Cynthia,Schreuder
1 1 Damian Bodde
2 2 Cynthia Schreuder

View File

@@ -0,0 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<AssemblyName>KanSan.CrossCutting.DataClasses</AssemblyName>
</PropertyGroup>
</Project>

18
DataClasses/Kunde.cs Normal file
View File

@@ -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<Projekt> Baustellen { get; } = new List<Projekt>();
}
}

View File

@@ -0,0 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\DataStoring.Contract\DataStoring.Contract.csproj" />
</ItemGroup>
</Project>

View File

@@ -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<Kunde> 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();
}
}

View File

@@ -0,0 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\KanSan.DataClasses\KanSan.DataClasses.csproj" />
</ItemGroup>
</Project>

View File

@@ -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<Kunde> Query { get; }
}
}

View File

@@ -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<TEntity> where TEntity : class
{
void Delete(TEntity entityToDelete);
void Delete(int id);
IEnumerable<TEntity> GetAll(string include);
IEnumerable<TEntity> Get(
Expression<Func<TEntity, bool>> filter = null,
Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> orderBy = null,
string includeProperties = "");
TEntity GetByID(object id);
void Insert(TEntity entity);
void Update(TEntity entity);
IQueryable<TEntity> Include(params Expression<Func<TEntity, object>>[] includes);
IQueryable<TEntity> Query { get; }
}
}

View File

@@ -0,0 +1,17 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.2" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="5.0.2" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\DataStoring.Contract\DataStoring.Contract.csproj" />
<ProjectReference Include="..\KanSan.DataClasses\KanSan.DataClasses.csproj" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,31 @@
using KanSan.CrossCutting.DataClasses;
using Microsoft.EntityFrameworkCore;
namespace DataStoring.EF
{
public class KanSanContext : DbContext
{
public DbSet<Projekt> Projekte { get; set; }
public DbSet<Kunde> Kunden { get; set; }
public DbSet<Sewer> Kanaele { get; set; }
public DbSet<SewerPoint> SewerPoints { get; set; }
public DbSet<Schaeden> Schaeden { get; set; }
public DbSet<Sanierungskonzept> Sanierungskonzept { get; set; }
public DbSet<Taetigkeiten> Taetigkeiten { get; set; }
public DbSet<LeistungsverzeichnisPosition> LeistungsverzeichnisPositionen { get; set; }
public DbSet<BaustelleLeistungsverzeichnisReferenz> LeistungsverzeichnisBaustellen { get; set; }
public DbSet<Fahrzeug> Fahrzeuge { get; set; }
public DbSet<KurzlinerSan> KurzlinerSanierung { get; set; }
public DbSet<HutprofilSan> HutprofilSanierung { get; set; }
public KanSanContext()
{
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseNpgsql("Host = 192.168.122.1; Database = kanSan; Username = husky; Password = bodde05");
}
}
}

View File

@@ -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<TEntity> : IRepository<TEntity> where TEntity : class
{
private readonly KanSanContext _db;
private readonly DbSet<TEntity> dbSet;
public IQueryable<TEntity> Query => dbSet;
public Repository(KanSanContext db)
{
_db = db;
this.dbSet = db.Set<TEntity>();
}
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<TEntity>().Find(id);
if(entity == null)
{
throw new Exception("Id not found");
}
}
catch(Exception e)
{
throw new Exception("Cant delete id");
}
}
public IEnumerable<TEntity> GetAll(string include)
{
return dbSet.Include(include);
}
public IEnumerable<TEntity> Get(Expression<Func<TEntity, bool>> filter = null, Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> orderBy = null, string includeProperties = "")
{
IQueryable<TEntity> 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<TEntity>().Add(entity);
_db.SaveChanges();
}
public IQueryable<TEntity> Include(params Expression<Func<TEntity, object>>[] includeExpressions)
{
IQueryable<TEntity> 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();
}
}
}

View File

@@ -25,4 +25,8 @@
</None>
</ItemGroup>
<ItemGroup>
<Folder Include="Models\" />
</ItemGroup>
</Project>

View File

@@ -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");
}
}

View File

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

View File

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

View File

@@ -1,4 +1,4 @@
namespace KanSan.Base.Enums
namespace KanSan.CrossCutting.DataClasses.Enums
{
public enum EMaterial
{

View File

@@ -1,4 +1,4 @@
namespace KanSan.Base.Enums
namespace KanSan.CrossCutting.DataClasses.Enums
{
public enum EPunktType
{

View File

@@ -1,4 +1,4 @@
namespace KanSan.Base.Enums
namespace KanSan.CrossCutting.DataClasses.Enums
{
public enum ESanierung
{

View File

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

View File

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

View File

@@ -2,7 +2,7 @@
using System.Collections.Generic;
using System.Text;
namespace KanSan.Base.Models
namespace KanSan.CrossCutting.DataClasses
{
public class HutprofilSan : PHarzSanierung
{

View File

@@ -0,0 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
</Project>

View File

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

View File

@@ -2,7 +2,7 @@
using System.Collections.Generic;
using System.Text;
namespace KanSan.Base.Models
namespace KanSan.CrossCutting.DataClasses
{
public class KurzlinerSan : PHarzSanierung
{

View File

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

View File

@@ -2,7 +2,7 @@
using System.Collections.Generic;
using System.Text;
namespace KanSan.Base.Models
namespace KanSan.CrossCutting.DataClasses
{
public class PHarzSanierung : GueteschutzProtokoll
{

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -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();
}
}
}

View File

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

View File

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

View File

@@ -0,0 +1,11 @@
using KanSan.CrossCutting.DataClasses;
using System;
using System.Collections.Generic;
namespace KundenManagement.Contract
{
public interface IKundeManager
{
List<Kunde> GetAllKunden();
}
}

View File

@@ -0,0 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\KanSan.DataClasses\KanSan.DataClasses.csproj" />
</ItemGroup>
</Project>

View File

@@ -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<Kunde> _repository;
public KundeManager(IRepository<Kunde> repository)
{
_repository = repository;
}
public List<Kunde> GetAllKunden()
{
return _repository
.Query
.Where(p => p.ID >= 0)
.ToList();
}
}
}

View File

@@ -0,0 +1,12 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\DataStoring.Contract\DataStoring.Contract.csproj" />
<ProjectReference Include="..\KundenManagement.Contract\KundenManagement.Contract.csproj" />
</ItemGroup>
</Project>

View File

@@ -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<KanSanContext>().ToSelf();
kernel.Bind(typeof(IRepository<>)).To(typeof(Repository<>));
//kernel.Bind<IKundenRepository>().To<KundenRepository>();
kernel.Bind<IKundeManager>().To<KundeManager>();
}
}
}

19
Mappings/Mappings.csproj Normal file
View File

@@ -0,0 +1,19 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Ninject" Version="3.3.4" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\DataStoring.Contract\DataStoring.Contract.csproj" />
<ProjectReference Include="..\DataStoring.CSV\DataStoring.CSV.csproj" />
<ProjectReference Include="..\DataStoring.EF\DataStoring.EF.csproj" />
<ProjectReference Include="..\KundenManagement.Contract\KundenManagement.Contract.csproj" />
<ProjectReference Include="..\KundenManagment\KundenManagement.csproj" />
</ItemGroup>
</Project>