From 856164239ea30662be0e101b9b60da18ac71a9f7 Mon Sep 17 00:00:00 2001 From: maliming Date: Sat, 9 Nov 2019 09:45:39 +0800 Subject: [PATCH] Update Abp to 5.0, support for net core 3.0! --- Abp.GeneralTree/Abp.GeneralTree.csproj | 10 ++++---- .../GeneralTree/GeneralTreeManager.cs | 25 ++++++++++++++----- .../GeneralTreeManagerWithReferenceType.cs | 22 ++++++++++++---- TreeApplication/TreeAppDbContext.cs | 9 +++++++ TreeApplication/TreeApplication.csproj | 8 +++--- TreeTests/TreeTests.csproj | 12 ++++----- 6 files changed, 60 insertions(+), 26 deletions(-) diff --git a/Abp.GeneralTree/Abp.GeneralTree.csproj b/Abp.GeneralTree/Abp.GeneralTree.csproj index f66dc38..e75fa2f 100644 --- a/Abp.GeneralTree/Abp.GeneralTree.csproj +++ b/Abp.GeneralTree/Abp.GeneralTree.csproj @@ -4,14 +4,14 @@ netstandard2.0 true false - 2.4.3 + 3.0.0 https://github.com/maliming/Abp.GeneralTree maliming maliming - Update Abp to 4.4.0 + Update Abp to 5.0, support for net core 3.0! Abp.GeneralTree Based on the idea of Organizations in Abp, we did a general management of the entity tree structure. - 2.4.3.0 - 2.4.3.0 + 3.0.0.0 + 3.0.0.0 abp,generaltree https://github.com/maliming/Abp.GeneralTree @@ -21,7 +21,7 @@ - + diff --git a/Abp.GeneralTree/GeneralTree/GeneralTreeManager.cs b/Abp.GeneralTree/GeneralTree/GeneralTreeManager.cs index 9641786..6ec5bc7 100644 --- a/Abp.GeneralTree/GeneralTree/GeneralTreeManager.cs +++ b/Abp.GeneralTree/GeneralTree/GeneralTreeManager.cs @@ -262,14 +262,27 @@ private async Task> GetChildrenAsync(TPrimaryKey? parentId, bool rec /// private void CheckSameName(TTree tree) { - if (_generalTreeRepository.GetAll().Where(EqualParentId(tree.ParentId)) - .WhereIf(_generalTreeConfiguration.CheckSameNameExpression != null, - x => _generalTreeConfiguration.CheckSameNameExpression(x, tree)) - .Where(NotEqualId(tree.Id)) - .Any(x => x.Name == tree.Name)) + if (_generalTreeConfiguration.CheckSameNameExpression == null) { - throw new UserFriendlyException(_generalTreeConfiguration.ExceptionMessageFactory.Invoke(tree)); + if (!_generalTreeRepository.GetAll().Where(EqualParentId(tree.ParentId)) + .Where(NotEqualId(tree.Id)) + .Any(x => x.Name == tree.Name)) + { + return; + } + } + else + { + var trees = _generalTreeRepository.GetAll().Where(EqualParentId(tree.ParentId)) + .Where(NotEqualId(tree.Id)) + .Where(x => x.Name == tree.Name).ToList(); + if (!trees.Any() || !trees.Any(x => _generalTreeConfiguration.CheckSameNameExpression(x, tree))) + { + return; + } } + + throw new UserFriendlyException(_generalTreeConfiguration.ExceptionMessageFactory.Invoke(tree)); } /// diff --git a/Abp.GeneralTree/GeneralTree/GeneralTreeManagerWithReferenceType.cs b/Abp.GeneralTree/GeneralTree/GeneralTreeManagerWithReferenceType.cs index b5d963c..4021401 100644 --- a/Abp.GeneralTree/GeneralTree/GeneralTreeManagerWithReferenceType.cs +++ b/Abp.GeneralTree/GeneralTree/GeneralTreeManagerWithReferenceType.cs @@ -263,13 +263,25 @@ private async Task> GetChildrenAsync(TPrimaryKey parentId, bool recu /// private void CheckSameName(TTree tree) { - if (_generalTreeRepository.GetAll().Where(x => x.ParentId == tree.ParentId && x.Id != tree.Id).WhereIf( - _generalTreeConfiguration.CheckSameNameExpression != null, - x => _generalTreeConfiguration.CheckSameNameExpression(x, tree)) - .Any(x => x.Name == tree.Name)) + if (_generalTreeConfiguration.CheckSameNameExpression == null) { - throw new UserFriendlyException(_generalTreeConfiguration.ExceptionMessageFactory.Invoke(tree)); + if (!_generalTreeRepository.GetAll().Where(x => x.ParentId == tree.ParentId && x.Id != tree.Id) + .Any(x => x.Name == tree.Name)) + { + return; + } + } + else + { + var trees = _generalTreeRepository.GetAll().Where(x => x.ParentId == tree.ParentId && x.Id != tree.Id) + .Where(x => x.Name == tree.Name).ToList(); + if (!trees.Any() || !trees.Any(x => _generalTreeConfiguration.CheckSameNameExpression(x, tree))) + { + return; + } } + + throw new UserFriendlyException(_generalTreeConfiguration.ExceptionMessageFactory.Invoke(tree)); } /// diff --git a/TreeApplication/TreeAppDbContext.cs b/TreeApplication/TreeAppDbContext.cs index b2508ac..b9d1866 100644 --- a/TreeApplication/TreeAppDbContext.cs +++ b/TreeApplication/TreeAppDbContext.cs @@ -13,5 +13,14 @@ public TreeAppDbContext(DbContextOptions options) public virtual DbSet Region { get; set; } public virtual DbSet Region2 { get; set; } + + protected override void OnModelCreating(ModelBuilder modelBuilder) + { + base.OnModelCreating(modelBuilder); + + modelBuilder.Entity() + .Property(b => b.Id) + .ValueGeneratedOnAdd(); + } } } \ No newline at end of file diff --git a/TreeApplication/TreeApplication.csproj b/TreeApplication/TreeApplication.csproj index f2c15b9..6cefb36 100644 --- a/TreeApplication/TreeApplication.csproj +++ b/TreeApplication/TreeApplication.csproj @@ -1,12 +1,12 @@ - + - netstandard2.0 + netcoreapp3.0 - - + + diff --git a/TreeTests/TreeTests.csproj b/TreeTests/TreeTests.csproj index 223df92..9badbb2 100644 --- a/TreeTests/TreeTests.csproj +++ b/TreeTests/TreeTests.csproj @@ -1,17 +1,17 @@ - + - netcoreapp2.0 + netcoreapp3.0 false - - + + - - + +