From 24a1783c9f58ffc87d26d20a80ddd59cb1ad2209 Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 13 May 2024 17:50:25 +0800 Subject: [PATCH 1/8] Get filter property name from `ModelBuilder`. In this way, we can customize the filter property name. --- docs/en/Data-Filtering.md | 4 ++-- docs/zh-Hans/Data-Filtering.md | 4 ++-- .../Volo/Abp/EntityFrameworkCore/AbpDbContext.cs | 10 ++++++---- .../Abp/EntityFrameworkCore/TestMigrationsDbContext.cs | 2 ++ .../TestApp/EntityFrameworkCore/TestAppDbContext.cs | 2 ++ 5 files changed, 14 insertions(+), 8 deletions(-) diff --git a/docs/en/Data-Filtering.md b/docs/en/Data-Filtering.md index 830979e710..2618ff183b 100644 --- a/docs/en/Data-Filtering.md +++ b/docs/en/Data-Filtering.md @@ -217,9 +217,9 @@ protected override bool ShouldFilterEntity(IMutableEntityType entityTyp return base.ShouldFilterEntity(entityType); } -protected override Expression> CreateFilterExpression() +protected override Expression> CreateFilterExpression(ModelBuilder modelBuilder) { - var expression = base.CreateFilterExpression(); + var expression = base.CreateFilterExpression(modelBuilder); if (typeof(IIsActive).IsAssignableFrom(typeof(TEntity))) { diff --git a/docs/zh-Hans/Data-Filtering.md b/docs/zh-Hans/Data-Filtering.md index 8a43ad93b1..16793dd908 100644 --- a/docs/zh-Hans/Data-Filtering.md +++ b/docs/zh-Hans/Data-Filtering.md @@ -166,9 +166,9 @@ protected override bool ShouldFilterEntity(IMutableEntityType entityTyp return base.ShouldFilterEntity(entityType); } -protected override Expression> CreateFilterExpression() +protected override Expression> CreateFilterExpression(ModelBuilder modelBuilder) { - var expression = base.CreateFilterExpression(); + var expression = base.CreateFilterExpression(modelBuilder); if (typeof(IIsActive).IsAssignableFrom(typeof(TEntity))) { diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/AbpDbContext.cs b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/AbpDbContext.cs index 638860e742..e0650ee0f5 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/AbpDbContext.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/AbpDbContext.cs @@ -696,7 +696,7 @@ public abstract class AbpDbContext : DbContext, IAbpEfCoreDbContext, { if (mutableEntityType.BaseType == null && ShouldFilterEntity(mutableEntityType)) { - var filterExpression = CreateFilterExpression(); + var filterExpression = CreateFilterExpression(modelBuilder); if (filterExpression != null) { modelBuilder.Entity().HasAbpQueryFilter(filterExpression); @@ -765,19 +765,21 @@ public abstract class AbpDbContext : DbContext, IAbpEfCoreDbContext, return false; } - protected virtual Expression>? CreateFilterExpression() + protected virtual Expression>? CreateFilterExpression(ModelBuilder modelBuilder) where TEntity : class { Expression>? expression = null; if (typeof(ISoftDelete).IsAssignableFrom(typeof(TEntity))) { - expression = e => !IsSoftDeleteFilterEnabled || !EF.Property(e, "IsDeleted"); + var softDeleteColumnName = modelBuilder.Entity().Metadata.FindProperty(nameof(ISoftDelete.IsDeleted))?.GetColumnName() ?? "IsDeleted"; + expression = e => !IsSoftDeleteFilterEnabled || !EF.Property(e, softDeleteColumnName); } if (typeof(IMultiTenant).IsAssignableFrom(typeof(TEntity))) { - Expression> multiTenantFilter = e => !IsMultiTenantFilterEnabled || EF.Property(e, "TenantId") == CurrentTenantId; + var multiTenantColumnName = modelBuilder.Entity().Metadata.FindProperty(nameof(IMultiTenant.TenantId))?.GetColumnName() ?? "TenantId"; + Expression> multiTenantFilter = e => !IsMultiTenantFilterEnabled || EF.Property(e, multiTenantColumnName) == CurrentTenantId; expression = expression == null ? multiTenantFilter : QueryFilterExpressionHelper.CombineExpressions(expression, multiTenantFilter); } diff --git a/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/TestMigrationsDbContext.cs b/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/TestMigrationsDbContext.cs index 225e767d26..c341380338 100644 --- a/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/TestMigrationsDbContext.cs +++ b/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/TestMigrationsDbContext.cs @@ -49,6 +49,8 @@ public class TestMigrationsDbContext : AbpDbContext { b.Property(x => x.LastActiveTime).ValueGeneratedOnAddOrUpdate().HasDefaultValue(DateTime.Now); b.Property(x => x.HasDefaultValue).HasDefaultValue(DateTime.Now); + b.Property(x => x.TenantId).HasColumnName("Tenant_Id"); + b.Property(x => x.IsDeleted).HasColumnName("Is_Deleted"); }); modelBuilder.Entity(b => diff --git a/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/TestApp/EntityFrameworkCore/TestAppDbContext.cs b/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/TestApp/EntityFrameworkCore/TestAppDbContext.cs index e668a21e26..f6cd9eb4da 100644 --- a/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/TestApp/EntityFrameworkCore/TestAppDbContext.cs +++ b/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/TestApp/EntityFrameworkCore/TestAppDbContext.cs @@ -65,6 +65,8 @@ public class TestAppDbContext : AbpDbContext, IThirdDbContext, { b.Property(x => x.LastActiveTime).ValueGeneratedOnAddOrUpdate().HasDefaultValue(DateTime.Now); b.Property(x => x.HasDefaultValue).HasDefaultValue(DateTime.Now); + b.Property(x => x.TenantId).HasColumnName("Tenant_Id"); + b.Property(x => x.IsDeleted).HasColumnName("Is_Deleted"); }); modelBuilder From 503929f0b3760d810c81664248951b2c31cfef91 Mon Sep 17 00:00:00 2001 From: sumeyyeKurtulus Date: Tue, 25 Jun 2024 13:12:48 +0300 Subject: [PATCH 2/8] update: add triggers prop for FormPropTooltip --- .../components/extensible/src/lib/models/form-props.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/npm/ng-packs/packages/components/extensible/src/lib/models/form-props.ts b/npm/ng-packs/packages/components/extensible/src/lib/models/form-props.ts index ec1c825e9a..ca96d02010 100644 --- a/npm/ng-packs/packages/components/extensible/src/lib/models/form-props.ts +++ b/npm/ng-packs/packages/components/extensible/src/lib/models/form-props.ts @@ -30,6 +30,7 @@ export interface FormPropGroup { export interface FormPropTooltip { text: string; placement?: 'top' | 'end' | 'bottom' | 'start'; + triggers?: string; } export class GroupedFormPropList { @@ -121,7 +122,10 @@ export class FormProp extends Prop { export class FormPropData extends PropData { getInjected: PropData['getInjected']; - constructor(injector: Injector, public readonly record: R) { + constructor( + injector: Injector, + public readonly record: R, + ) { super(); this.getInjected = injector.get.bind(injector); From d20c71630fa244a72ddb4481b56fc943eb84067e Mon Sep 17 00:00:00 2001 From: sumeyyeKurtulus Date: Tue, 25 Jun 2024 13:13:26 +0300 Subject: [PATCH 3/8] add: triggers property option for the button tooltip --- .../src/lib/components/grid-actions/grid-actions.component.html | 1 + 1 file changed, 1 insertion(+) diff --git a/npm/ng-packs/packages/components/extensible/src/lib/components/grid-actions/grid-actions.component.html b/npm/ng-packs/packages/components/extensible/src/lib/components/grid-actions/grid-actions.component.html index 9991336bf9..ae70cb77e0 100644 --- a/npm/ng-packs/packages/components/extensible/src/lib/components/grid-actions/grid-actions.component.html +++ b/npm/ng-packs/packages/components/extensible/src/lib/components/grid-actions/grid-actions.component.html @@ -64,6 +64,7 @@ [style]="action.btnStyle" [ngbTooltip]="action.tooltip.text | abpLocalization" [placement]="action.tooltip.placement || 'auto'" + [triggers]="action.tooltip.triggers || 'hover focus'" container="body" > Date: Tue, 25 Jun 2024 15:30:49 +0300 Subject: [PATCH 4/8] remove: the unnecessary prop for the tooltip trigger --- .../packages/components/extensible/src/lib/models/form-props.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/npm/ng-packs/packages/components/extensible/src/lib/models/form-props.ts b/npm/ng-packs/packages/components/extensible/src/lib/models/form-props.ts index ca96d02010..c1b8cacbe2 100644 --- a/npm/ng-packs/packages/components/extensible/src/lib/models/form-props.ts +++ b/npm/ng-packs/packages/components/extensible/src/lib/models/form-props.ts @@ -30,7 +30,6 @@ export interface FormPropGroup { export interface FormPropTooltip { text: string; placement?: 'top' | 'end' | 'bottom' | 'start'; - triggers?: string; } export class GroupedFormPropList { From 9078b7fcb40afbbf731ecae8854ed7c0e8d6489c Mon Sep 17 00:00:00 2001 From: sumeyyeKurtulus Date: Tue, 25 Jun 2024 15:34:37 +0300 Subject: [PATCH 5/8] update: the triggers prop with a static hover value --- .../src/lib/components/grid-actions/grid-actions.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/npm/ng-packs/packages/components/extensible/src/lib/components/grid-actions/grid-actions.component.html b/npm/ng-packs/packages/components/extensible/src/lib/components/grid-actions/grid-actions.component.html index ae70cb77e0..606a6de12a 100644 --- a/npm/ng-packs/packages/components/extensible/src/lib/components/grid-actions/grid-actions.component.html +++ b/npm/ng-packs/packages/components/extensible/src/lib/components/grid-actions/grid-actions.component.html @@ -64,7 +64,7 @@ [style]="action.btnStyle" [ngbTooltip]="action.tooltip.text | abpLocalization" [placement]="action.tooltip.placement || 'auto'" - [triggers]="action.tooltip.triggers || 'hover focus'" + triggers="hover" container="body" > Date: Wed, 26 Jun 2024 10:54:25 +0800 Subject: [PATCH 6/8] Remove Blazor.Client project if UI is not Blazor --- .../Microservice/MicroserviceTemplateBase.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceTemplateBase.cs index a70f1db649..0d66937841 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceTemplateBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceTemplateBase.cs @@ -172,6 +172,8 @@ public abstract class MicroserviceTemplateBase : TemplateInfo steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor", null, "/apps/blazor/src/MyCompanyName.MyProjectName.Blazor")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Client", null, + "/apps/blazor/src/MyCompanyName.MyProjectName.Blazor.Client")); steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.ProductService.Blazor", "/services/product/MyCompanyName.MyProjectName.ProductService.sln", "/services/product/src/MyCompanyName.MyProjectName.ProductService.Blazor")); @@ -217,6 +219,13 @@ public abstract class MicroserviceTemplateBase : TemplateInfo steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor", null, "/apps/blazor/src/MyCompanyName.MyProjectName.Blazor")); + + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Client", + "/apps/blazor/MyCompanyName.MyProjectName.Blazor.sln", + "/apps/blazor/src/MyCompanyName.MyProjectName.Blazor.Client")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Client", + null, + "/apps/blazor/src/MyCompanyName.MyProjectName.Blazor.Client")); steps.Add(new RemoveProjectFromTyeStep("blazor")); steps.Add(new TemplateProjectRenameStep("MyCompanyName.MyProjectName.Blazor.Server", @@ -230,6 +239,8 @@ public abstract class MicroserviceTemplateBase : TemplateInfo case UiFramework.NotSpecified: steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor", null, "/apps/blazor/src/MyCompanyName.MyProjectName.Blazor")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Client", null, + "/apps/blazor/src/MyCompanyName.MyProjectName.Blazor.Client")); steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server", null, "/apps/blazor/src/MyCompanyName.MyProjectName.Blazor.Server")); steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.ProductService.Blazor", From 6b00799526b98b64fb26cf5ac126f171c768390d Mon Sep 17 00:00:00 2001 From: maliming Date: Wed, 26 Jun 2024 13:20:09 +0800 Subject: [PATCH 7/8] Update `datatables.net` to `2.0.2`. https://github.com/abpframework/abp/pull/19340 --- npm/packs/datatables.net-bs5/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/npm/packs/datatables.net-bs5/package.json b/npm/packs/datatables.net-bs5/package.json index 03bcece395..d37ed04f99 100644 --- a/npm/packs/datatables.net-bs5/package.json +++ b/npm/packs/datatables.net-bs5/package.json @@ -6,7 +6,7 @@ }, "dependencies": { "@abp/datatables.net": "~8.2.0-rc.5", - "datatables.net-bs5": "^1.11.4" + "datatables.net-bs5": "^2.0.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", From 93600533769b1d98c7fdbf9cca074cf17ac621d3 Mon Sep 17 00:00:00 2001 From: selman koc <64414348+skoc10@users.noreply.github.com> Date: Wed, 26 Jun 2024 09:43:55 +0300 Subject: [PATCH 8/8] Update version to release 8.2.0 --- common.props | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/common.props b/common.props index d40d32471c..fb57fe4818 100644 --- a/common.props +++ b/common.props @@ -1,8 +1,8 @@ latest - 8.2.0-rc.5 - 3.2.0-rc.5 + 8.2.0 + 3.2.0 $(NoWarn);CS1591;CS0436 https://abp.io/assets/abp_nupkg.png https://abp.io/