Refactored tag and favorite user filtering logic in both EfCore and MongoDB blog post repositories to handle empty filter results and cancellation tokens more robustly. Updated BlogPostPublicAppService to pass favoriteUserId to GetCountAsync for accurate paging. Adjusted blog index view to improve favorite filter button visibility and logic.
Added CSS rules to conditionally set the border-top of .datatable-footer in ngx-datatable based on the presence of .datatable-body-row. This improves visual consistency when the datatable has no rows.
Renamed TenantInfoModelToTenantCreateDtoMapper to CreateTenantInfoModelToTenantCreateDtoMapper and updated all method signatures to use CreateModalModel.TenantInfoModel instead of EditModalModel.TenantInfoModel. This clarifies the mapper's purpose and aligns it with the correct model context.
Replaced AutoMapper usage with Mapperly in tenant management and MVC template modules. Removed obsolete AutoMapper mapping profile, updated project references and module dependencies, and refactored mapping configuration methods to use Mapperly.
Introduces a new community article explaining different authorization approaches in ASP.NET Core, with a focus on ABP's permission-based authorization system. The article covers role-based, claims-based, policy-based, and resource-based authorization, and provides practical examples and guidance on defining, assigning, and checking permissions using ABP Framework.
Introduces a new community article and cover image detailing best practices for designing backward-compatible REST APIs in microservice solutions for .NET developers. The article covers breaking vs non-breaking changes, versioning strategies, schema evolution, API behaviors, rollout policies, contract testing, and relevant tooling.
Refactored repository interfaces and implementations to replace SetCustomEntityName and CustomEntityName with SetEntityName and EntityName for consistency and clarity. Updated related extension methods and tests to use the new naming.