From c581f5e1981cc4c4223212cedf445b15d675277f Mon Sep 17 00:00:00 2001 From: Husky Date: Sat, 27 Feb 2021 12:20:10 +0100 Subject: [PATCH] Baustellenmanager --- ConsoleApplication/Program.cs | 6 ++++-- DataStoring.Contract/IRepository.cs | 2 +- DataStoring.EfCore/Repository.cs | 16 +++++++++++++++- DichtheitManagement/BaustelleManager.cs | 5 ++++- 4 files changed, 24 insertions(+), 5 deletions(-) diff --git a/ConsoleApplication/Program.cs b/ConsoleApplication/Program.cs index b9a7ef4..8146e16 100644 --- a/ConsoleApplication/Program.cs +++ b/ConsoleApplication/Program.cs @@ -21,8 +21,8 @@ namespace ConsoleApplication var manager = kernel.Get(); var baustellen = kernel.Get(); - /* - Auftraggeber auftraggeber = new Auftraggeber(); + + /*Auftraggeber auftraggeber = new Auftraggeber(); auftraggeber.Baustellen = new List(); auftraggeber.Baustellen.Add(new Bauvorhaben() { @@ -32,6 +32,8 @@ namespace ConsoleApplication Ort = "Oldenburg" }); auftraggeber.Name = "Junker"; + auftraggeber.Ort = "Oldenburg"; + auftraggeber.Strasse = "Schlachthofstraße 42"; manager.Add(auftraggeber); */ diff --git a/DataStoring.Contract/IRepository.cs b/DataStoring.Contract/IRepository.cs index aa9ee00..a063801 100644 --- a/DataStoring.Contract/IRepository.cs +++ b/DataStoring.Contract/IRepository.cs @@ -12,7 +12,7 @@ namespace DataStoring.Contract void Insert(TEntity entity); void Update(TEntity entity); void Delete(int id); - IEnumerable Get( + IQueryable Get( Expression> filter = null, Func, IOrderedQueryable> orderBy = null, string includeProperties = ""); diff --git a/DataStoring.EfCore/Repository.cs b/DataStoring.EfCore/Repository.cs index 657df71..c8c8c2e 100644 --- a/DataStoring.EfCore/Repository.cs +++ b/DataStoring.EfCore/Repository.cs @@ -46,10 +46,24 @@ namespace DataStoring.EfCore _db.SaveChanges(); } - public IEnumerable Get(Expression> filter = null, Func, IOrderedQueryable> orderBy = null, string includeProperties = "") + public IQueryable Get(Expression> filter = null, Func, IOrderedQueryable> orderBy = null, string includeProperties = "") { IQueryable query = _db.Set(); + 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); + } + else { + return query; + } } } } diff --git a/DichtheitManagement/BaustelleManager.cs b/DichtheitManagement/BaustelleManager.cs index 103aff6..87ad2b3 100644 --- a/DichtheitManagement/BaustelleManager.cs +++ b/DichtheitManagement/BaustelleManager.cs @@ -1,9 +1,12 @@ using DataStoring.Contract; using DichtheitManagement.Contract; + using Models; using System; using System.Collections.Generic; +using System.Diagnostics; using System.Linq; +using System.Linq.Expressions; using System.Text; namespace DichtheitManagement @@ -21,7 +24,7 @@ namespace DichtheitManagement public IQueryable GetAllBauvorhaben() { - return _repository.Query; + return _repository.Get(includeProperties: "Auftraggeber"); } } }