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