Browse Source

Merge branch 'dev' into IdentitySession

pull/18242/head
maliming 3 years ago
parent
commit
66ebf079f7
No known key found for this signature in database GPG Key ID: A646B9CB645ECEA4
  1. 35
      abp_io/README.md
  2. 4
      common.props
  3. 0
      docs/en/Community-Articles/2023-11-17-AOT-Compilation/Post.md
  4. 18
      docs/en/Dependency-Injection.md
  5. 15
      docs/en/Road-Map.md
  6. 39
      docs/en/Themes/LeptonXLite/Blazor.md
  7. 18
      docs/zh-Hans/Dependency-Injection.md
  8. 418
      framework/Volo.Abp.abpmdl
  9. 2
      framework/Volo.Abp.abpsln
  10. 0
      framework/src/Volo.Abp.ApiVersioning.Abstractions/Volo.Abp.ApiVersioning.Abstractions.abppkg
  11. 0
      framework/src/Volo.Abp.AspNetCore.Authentication.JwtBearer/Volo.Abp.AspNetCore.Authentication.JwtBearer.abppkg
  12. 0
      framework/src/Volo.Abp.AspNetCore.Authentication.OAuth/Volo.Abp.AspNetCore.Authentication.OAuth.abppkg
  13. 0
      framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Volo.Abp.AspNetCore.Authentication.OpenIdConnect.abppkg
  14. 0
      framework/src/Volo.Abp.AspNetCore.Components.Server.Theming/Volo.Abp.AspNetCore.Components.Server.Theming.abppkg
  15. 0
      framework/src/Volo.Abp.AspNetCore.Components.Server/Volo.Abp.AspNetCore.Components.Server.abppkg
  16. 0
      framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Volo.Abp.AspNetCore.Components.Web.Theming.abppkg
  17. 0
      framework/src/Volo.Abp.AspNetCore.Components.Web/Volo.Abp.AspNetCore.Components.Web.abppkg
  18. 4
      framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/AbpBlazorMessageLocalizerHelper.cs
  19. 7
      framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/Security/AbpComponentsClaimsCache.cs
  20. 0
      framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/Volo.Abp.AspNetCore.Components.WebAssembly.Theming.abppkg
  21. 0
      framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo.Abp.AspNetCore.Components.WebAssembly.abppkg
  22. 0
      framework/src/Volo.Abp.AspNetCore.Components/Volo.Abp.AspNetCore.Components.abppkg
  23. 0
      framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo.Abp.AspNetCore.MultiTenancy.abppkg
  24. 0
      framework/src/Volo.Abp.AspNetCore.Mvc.Client.Common/Volo.Abp.AspNetCore.Mvc.Client.Common.abppkg
  25. 0
      framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo.Abp.AspNetCore.Mvc.Client.abppkg
  26. 0
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo.Abp.AspNetCore.Mvc.Contracts.abppkg
  27. 0
      framework/src/Volo.Abp.AspNetCore.Mvc.Dapr.EventBus/Volo.Abp.AspNetCore.Mvc.Dapr.EventBus.abppkg
  28. 0
      framework/src/Volo.Abp.AspNetCore.Mvc.Dapr/Volo.Abp.AspNetCore.Mvc.Dapr.abppkg
  29. 0
      framework/src/Volo.Abp.AspNetCore.Mvc.NewtonsoftJson/Volo.Abp.AspNetCore.Mvc.NewtonsoftJson.abppkg
  30. 22
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs
  31. 22
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerBaseTagHelperService.cs
  32. 0
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.abppkg
  33. 0
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling.Abstractions/Volo.Abp.AspNetCore.Mvc.UI.Bundling.Abstractions.abppkg
  34. 0
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo.Abp.AspNetCore.Mvc.UI.Bundling.abppkg
  35. 0
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.abppkg
  36. 0
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo.Abp.AspNetCore.Mvc.UI.Packages.abppkg
  37. 0
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.abppkg
  38. 0
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.abppkg
  39. 0
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Widgets/Volo.Abp.AspNetCore.Mvc.UI.Widgets.abppkg
  40. 0
      framework/src/Volo.Abp.AspNetCore.Mvc.UI/Volo.Abp.AspNetCore.Mvc.UI.abppkg
  41. 0
      framework/src/Volo.Abp.AspNetCore.Mvc/Volo.Abp.AspNetCore.Mvc.abppkg
  42. 0
      framework/src/Volo.Abp.AspNetCore.Serilog/Volo.Abp.AspNetCore.Serilog.abppkg
  43. 0
      framework/src/Volo.Abp.AspNetCore.SignalR/Volo.Abp.AspNetCore.SignalR.abppkg
  44. 0
      framework/src/Volo.Abp.AspNetCore.TestBase/Volo.Abp.AspNetCore.TestBase.abppkg
  45. 0
      framework/src/Volo.Abp.AspNetCore/Volo.Abp.AspNetCore.abppkg
  46. 0
      framework/src/Volo.Abp.Auditing.Contracts/Volo.Abp.Auditing.Contracts.abppkg
  47. 0
      framework/src/Volo.Abp.Auditing/Volo.Abp.Auditing.abppkg
  48. 0
      framework/src/Volo.Abp.Authorization.Abstractions/Volo.Abp.Authorization.Abstractions.abppkg
  49. 0
      framework/src/Volo.Abp.Authorization/Volo.Abp.Authorization.abppkg
  50. 0
      framework/src/Volo.Abp.AutoMapper/Volo.Abp.AutoMapper.abppkg
  51. 0
      framework/src/Volo.Abp.Autofac.WebAssembly/Volo.Abp.Autofac.WebAssembly.abppkg
  52. 25
      framework/src/Volo.Abp.Autofac/Autofac/Builder/AbpRegistrationBuilderExtensions.cs
  53. 5
      framework/src/Volo.Abp.Autofac/Autofac/Extensions/DependencyInjection/AutofacRegistration.cs
  54. 0
      framework/src/Volo.Abp.Autofac/Volo.Abp.Autofac.abppkg
  55. 0
      framework/src/Volo.Abp.AzureServiceBus/Volo.Abp.AzureServiceBus.abppkg
  56. 0
      framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo.Abp.BackgroundJobs.Abstractions.abppkg
  57. 0
      framework/src/Volo.Abp.BackgroundJobs.HangFire/Volo.Abp.BackgroundJobs.HangFire.abppkg
  58. 0
      framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo.Abp.BackgroundJobs.Quartz.abppkg
  59. 0
      framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo.Abp.BackgroundJobs.RabbitMQ.abppkg
  60. 0
      framework/src/Volo.Abp.BackgroundJobs/Volo.Abp.BackgroundJobs.abppkg
  61. 0
      framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo.Abp.BackgroundWorkers.Hangfire.abppkg
  62. 0
      framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo.Abp.BackgroundWorkers.Quartz.abppkg
  63. 0
      framework/src/Volo.Abp.BackgroundWorkers/Volo.Abp.BackgroundWorkers.abppkg
  64. 0
      framework/src/Volo.Abp.BlobStoring.Aliyun/Volo.Abp.BlobStoring.Aliyun.abppkg
  65. 0
      framework/src/Volo.Abp.BlobStoring.Aws/Volo.Abp.BlobStoring.Aws.abppkg
  66. 0
      framework/src/Volo.Abp.BlobStoring.Azure/Volo.Abp.BlobStoring.Azure.abppkg
  67. 0
      framework/src/Volo.Abp.BlobStoring.FileSystem/Volo.Abp.BlobStoring.FileSystem.abppkg
  68. 0
      framework/src/Volo.Abp.BlobStoring.Minio/Volo.Abp.BlobStoring.Minio.abppkg
  69. 0
      framework/src/Volo.Abp.BlobStoring/Volo.Abp.BlobStoring.abppkg
  70. 0
      framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo.Abp.Caching.StackExchangeRedis.abppkg
  71. 0
      framework/src/Volo.Abp.Caching/Volo.Abp.Caching.abppkg
  72. 0
      framework/src/Volo.Abp.Castle.Core/Volo.Abp.Castle.Core.abppkg
  73. 0
      framework/src/Volo.Abp.Cli.Core/Volo.Abp.Cli.Core.abppkg
  74. 2
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs
  75. 51
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs
  76. 2
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveProjectFromSolutionStep.cs
  77. 20
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateSwitchEntityFrameworkCoreToMongoDbStep.cs
  78. 0
      framework/src/Volo.Abp.Cli/Volo.Abp.Cli.abppkg
  79. 31
      framework/src/Volo.Abp.Core/Microsoft/Extensions/DependencyInjection/ServiceCollectionLifetimeEventExtensions.cs
  80. 0
      framework/src/Volo.Abp.Core/Volo.Abp.Core.abppkg
  81. 6
      framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/IOnServiceActivatedContext.cs
  82. 11
      framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/OnServiceActivatedContext.cs
  83. 14
      framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/ServiceActivatedActionList.cs
  84. 0
      framework/src/Volo.Abp.Dapper/Volo.Abp.Dapper.abppkg
  85. 0
      framework/src/Volo.Abp.Dapr/Volo.Abp.Dapr.abppkg
  86. 0
      framework/src/Volo.Abp.Data/Volo.Abp.Data.abppkg
  87. 0
      framework/src/Volo.Abp.Ddd.Application.Contracts/Volo.Abp.Ddd.Application.Contracts.abppkg
  88. 0
      framework/src/Volo.Abp.Ddd.Application/Volo.Abp.Ddd.Application.abppkg
  89. 12
      framework/src/Volo.Abp.Ddd.Domain/Microsoft/Extensions/DependencyInjection/ServiceCollectionRepositoryExtensions.cs
  90. 0
      framework/src/Volo.Abp.Ddd.Domain/Volo.Abp.Ddd.Domain.abppkg
  91. 0
      framework/src/Volo.Abp.DistributedLocking.Abstractions/Volo.Abp.DistributedLocking.Abstractions.abppkg
  92. 0
      framework/src/Volo.Abp.DistributedLocking.Dapr/Volo.Abp.DistributedLocking.Dapr.abppkg
  93. 0
      framework/src/Volo.Abp.DistributedLocking/Volo.Abp.DistributedLocking.abppkg
  94. 0
      framework/src/Volo.Abp.Emailing/Volo.Abp.Emailing.abppkg
  95. 0
      framework/src/Volo.Abp.EntityFrameworkCore.MySQL/Volo.Abp.EntityFrameworkCore.MySQL.abppkg
  96. 0
      framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo.Abp.EntityFrameworkCore.Oracle.Devart.abppkg
  97. 0
      framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo.Abp.EntityFrameworkCore.Oracle.abppkg
  98. 0
      framework/src/Volo.Abp.EntityFrameworkCore.PostgreSql/Volo.Abp.EntityFrameworkCore.PostgreSql.abppkg
  99. 0
      framework/src/Volo.Abp.EntityFrameworkCore.SqlServer/Volo.Abp.EntityFrameworkCore.SqlServer.abppkg
  100. 0
      framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo.Abp.EntityFrameworkCore.Sqlite.abppkg

35
abp_io/README.md

@ -1,11 +1,32 @@
## Abp.io platform localization
## ABP Platform Websites Localization
This project is all localized resources of the abp.io platform.
This is the localization project of [abp.io platform](https://abp.io).
All *.abp.io websites are built on top of ABP Framework, and it uses ABP Framework's localization system.
You can correct a wrong localization text, or you can translate it into your own language.
By doing so, [abp.io](https://abp.io) websites will be translated into a new language and it will help to expand the ABP Community.
If you like, you can contribute to the localization resources in this project.
For example: `AbpIoLocalization\AbpIoLocalization\Www\Localization\Resources\zh-Hans.json`
If the file is missing some translations or the translation is wrong, you can add it.
If the language file is missing (eg `kr.json`), you can also add it.
Please refer to the [Contribution Guide](https://github.com/abpframework/abp/blob/dev/docs/en/Contribution/Index.md) for details.
## How to Translate abp.io Into Your Language:
1. Install [ABP CLI](https://docs.abp.io/en/abp/latest/CLI) command line tool.
2. Run the following command to generate the localization file.
For example, for translating from English to French `fr`:
```bash
abp translate -c fr
```
3. After you fill in the empty localization keys, run the following command to apply it.
```bash
abp translate -a
```
4. Send your PR to the team; after the review process, we wil merge it.
---
## References:
* [ABP CLI Translate Command](https://docs.abp.io/en/abp/latest/Contribution/Index#using-the-abp-translate-command)
* [Contribution Guide](https://github.com/abpframework/abp/blob/dev/docs/en/Contribution/Index.md)

4
common.props

@ -29,8 +29,8 @@
<Pack>true</Pack>
<PackagePath>content\</PackagePath>
</Content>
<None Remove="*.abppkg.json" />
<Content Include="*.abppkg.json">
<None Remove="*.abppkg" />
<Content Include="*.abppkg">
<Pack>true</Pack>
<PackagePath>content\</PackagePath>
</Content>

0
docs/en/Community-Articles/2023-11-97-AOT-Compilation/Post.md → docs/en/Community-Articles/2023-11-17-AOT-Compilation/Post.md

18
docs/en/Dependency-Injection.md

@ -480,6 +480,24 @@ This example simply checks if the service class has `MyLogAttribute` attribute a
> Notice that `OnRegistered` callback might be called multiple times for the same service class if it exposes more than one service/interface. So, it's safe to use `Interceptors.TryAdd` method instead of `Interceptors.Add` method. See [the documentation](Dynamic-Proxying-Interceptors.md) of dynamic proxying / interceptors.
### IServiceCollection.OnActivated Event
The `OnActivated` event is raised once a service is fully constructed. Here you can perform application-level tasks that depend on the service being fully constructed - these should be rare.
````csharp
var serviceDescriptor = ServiceDescriptor.Transient<MyServer, MyServer>();
services.Add(serviceDescriptor);
if (setIsReadOnly)
{
services.OnActivated(serviceDescriptor, x =>
{
x.Instance.As<MyServer>().IsReadOnly = true;
});
}
````
> Notice that `OnActivated` event can be registered multiple times for the same `ServiceDescriptor`.
## 3rd-Party Providers
While ABP has no core dependency to any 3rd-party DI provider, it's required to use a provider that supports dynamic proxying and some other advanced features to make some ABP features properly work.

15
docs/en/Road-Map.md

@ -4,17 +4,18 @@ This document provides a road map, release schedule and planned features for the
## Next Versions
### v8.0
### v8.1
The next version will be 8.0 and planned to release the stable 8.0 version in December, 2023. We will be mostly working on the following topics:
The next version will be 8.1 and planned to release the stable 8.1 version in February, 2024. We will be mostly working on the following topics:
* Enabling nullable annotations for all projects ([#16610](https://github.com/abpframework/abp/issues/16610))
* Upgrade to .NET 8.0 ([#17355](https://github.com/abpframework/abp/issues/17355))
* Use NoTracking for readonly repositories for EF Core ([#597](https://github.com/abpframework/abp/issues/597))
* Support mapping collection of objects for custom object mappers ([#94](https://github.com/abpframework/abp/issues/94))
* Blazor Full-Stack UI ([#16156](https://github.com/abpframework/abp/issues/16156))
* Upgrade to OpenIddict 5.x ([#17605](https://github.com/abpframework/abp/issues/17605))
* Angular Universal ([#15782](https://github.com/abpframework/abp/issues/15782))
* Blazor - Forms & Validation Documentation ([#16400](https://github.com/abpframework/abp/issues/16400))
* Deployment Documents Improvements ([#15034](https://github.com/abpframework/abp/issues/15034))
* Improvements on the existing features and provide more guides.
See the [8.0 milestone](https://github.com/abpframework/abp/milestone/88) for all the issues we've planned to work on.
See the [8.1 milestone](https://github.com/abpframework/abp/milestone/94) for all the issues we've planned to work on.
## Backlog Items

39
docs/en/Themes/LeptonXLite/Blazor.md

@ -135,13 +135,17 @@ builder.RootComponents.Add<App>("#ApplicationContainer");
@attribute [Dependency(ReplaceServices = true)]
@Name
@code {
string Name = "My Main Layout";
}
```
* If you prefer to use a code-behind file for the C# code of your component, create a razor component, like `MyMainLayout.razor.cs`, in your blazor application as shown below:
```csharp
[ExposeServices(typeof(MainLayout))]
[Dependency(ReplaceServices = true)
[Dependency(ReplaceServices = true)]
namespace LeptonXLite.DemoApp.Blazor.MyComponents
{
public partial class MyMainLayout
@ -152,6 +156,7 @@ namespace LeptonXLite.DemoApp.Blazor.MyComponents
```
> Don't forget to remove the repeated attributes from the razor page!
> Don't forget to remove the `@code` section from the razor page!
### Toolbars
@ -206,6 +211,10 @@ The **branding component** is a simple component that can be used to display you
@attribute [Dependency(ReplaceServices = true)]
@Name
@code {
string Name = "My Branding Component";
}
```
* If you prefer to use a code-behind file for the C# code of your component, create a razor component, like `MyBrandingComponent.razor.cs`, in your blazor application as shown below:
@ -243,6 +252,10 @@ On websites that have a lot of pages, **breadcrumb navigation** can greatly **en
@attribute [Dependency(ReplaceServices = true)]
@Name
@code {
string Name = "My Breadcrumbs Component";
}
```
* If you prefer to use a code-behind file for the C# code of your component, create a razor component, like `MyBreadcrumbsComponent.razor.cs`, in your blazor application as shown below:
@ -281,6 +294,10 @@ Sidebar menus have been used as **a directory for Related Pages** for a **Servic
@attribute [Dependency(ReplaceServices = true)]
@Name
@code {
string Name = "My Main Menu Component";
}
```
* If you prefer to use a code-behind file for the C# code of your component, create a razor component, like `MyMainMenu.razor.cs`, in your blazor application as shown below:
@ -319,6 +336,10 @@ Toolbar items are used to add **extra functionality to the toolbar**. The toolba
@attribute [Dependency(ReplaceServices = true)]
@Name
@code {
string Name = "My Toolbar Items Component";
}
```
* If you prefer to use a code-behind file for the C# code of your component, create a razor component, like `MyToolbarItemsComponent.razor.cs`, in your blazor application as shown below:
@ -357,6 +378,10 @@ Think about a **multi-lingual** website and the first thing that could **hit you
@attribute [Dependency(ReplaceServices = true)]
@Name
@code {
string Name = "My Language Switch Component";
}
```
* If you prefer to use a code-behind file for the C# code of your component, create a razor component, like `MyLanguageSwitchComponent.razor.cs`, in your blazor application as shown below:
@ -395,6 +420,10 @@ The **mobile** **language switch component** is used to switch the language of t
@attribute [Dependency(ReplaceServices = true)]
@Name
@code {
string Name = "My Mobile Language Switch Component";
}
```
* If you prefer to use a code-behind file for the C# code of your component, create a razor component, like `MyMobilLanguageSwitchComponent.razor.cs`, in your blazor application as shown below:
@ -433,6 +462,10 @@ The **User Menu** is the **menu** that **drops down** when you **click your name
@attribute [Dependency(ReplaceServices = true)]
@Name
@code {
string Name = "My User Menu Component";
}
```
* If you prefer to use a code-behind file for the C# code of your component, create a razor component, like `MyUserMenuComponent.razor.cs`, in your blazor application as shown below:
@ -471,6 +504,10 @@ The **mobile user menu component** is used to display the **user menu on mobile
@attribute [Dependency(ReplaceServices = true)]
@Name
@code {
string Name = "My Mobile User Menu Component";
}
```
* If you prefer to use a code-behind file for the C# code of your component, create a razor component, like `MyMobileUserMenuComponent.razor.cs`, in your blazor application as shown below:

18
docs/zh-Hans/Dependency-Injection.md

@ -310,6 +310,24 @@ public class AppModule : AbpModule
> 注意, 如果服务类公开了多于一个服务或接口, `OnRegistered` 回调(callback)可能被同一服务类多次调用. 因此, 较安全的方法是使用 `Interceptors.TryAdd` 方法而不是 `Interceptors.Add` 方法. 请参阅动态代理(dynamic proxying)/拦截器 [文档](Dynamic-Proxying-Interceptors.md).
### IServiceCollection.OnActivated 事件
一旦服务完全构建完成`OnActivated`事件就会触发. 你可以执行依赖于服务已完全构建的的一些任务, 虽然这种情况可能很少见.
````csharp
var serviceDescriptor = ServiceDescriptor.Transient<MyServer, MyServer>();
services.Add(serviceDescriptor);
if (setIsReadOnly)
{
services.OnActivated(serviceDescriptor, x =>
{
x.Instance.As<MyServer>().IsReadOnly = true;
});
}
````
> 注意,`OnActivated`事件可以为一个`ServiceDescriptor`注册多次.
## 第三方提供程序
虽然ABP框架没有对任何第三方DI提供程序的核心依赖, 但它必须使用一个提供程序来支持动态代理(dynamic proxying)和一些高级特性以便ABP特性能正常工作.

418
framework/Volo.Abp.abpmdl.json → framework/Volo.Abp.abpmdl

File diff suppressed because it is too large

2
framework/Volo.Abp.abpsln.json → framework/Volo.Abp.abpsln

@ -2,7 +2,7 @@
"template": "empty",
"modules": {
"Volo.Abp": {
"path": "Volo.Abp.abpmdl.json"
"path": "Volo.Abp.abpmdl"
}
}
}

0
framework/src/Volo.Abp.ApiVersioning.Abstractions/Volo.Abp.ApiVersioning.Abstractions.abppkg.json → framework/src/Volo.Abp.ApiVersioning.Abstractions/Volo.Abp.ApiVersioning.Abstractions.abppkg

0
framework/src/Volo.Abp.AspNetCore.Authentication.JwtBearer/Volo.Abp.AspNetCore.Authentication.JwtBearer.abppkg.json → framework/src/Volo.Abp.AspNetCore.Authentication.JwtBearer/Volo.Abp.AspNetCore.Authentication.JwtBearer.abppkg

0
framework/src/Volo.Abp.AspNetCore.Authentication.OAuth/Volo.Abp.AspNetCore.Authentication.OAuth.abppkg.json → framework/src/Volo.Abp.AspNetCore.Authentication.OAuth/Volo.Abp.AspNetCore.Authentication.OAuth.abppkg

0
framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Volo.Abp.AspNetCore.Authentication.OpenIdConnect.abppkg.json → framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Volo.Abp.AspNetCore.Authentication.OpenIdConnect.abppkg

0
framework/src/Volo.Abp.AspNetCore.Components.Server.Theming/Volo.Abp.AspNetCore.Components.Server.Theming.abppkg.json → framework/src/Volo.Abp.AspNetCore.Components.Server.Theming/Volo.Abp.AspNetCore.Components.Server.Theming.abppkg

0
framework/src/Volo.Abp.AspNetCore.Components.Server/Volo.Abp.AspNetCore.Components.Server.abppkg.json → framework/src/Volo.Abp.AspNetCore.Components.Server/Volo.Abp.AspNetCore.Components.Server.abppkg

0
framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Volo.Abp.AspNetCore.Components.Web.Theming.abppkg.json → framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Volo.Abp.AspNetCore.Components.Web.Theming.abppkg

0
framework/src/Volo.Abp.AspNetCore.Components.Web/Volo.Abp.AspNetCore.Components.Web.abppkg.json → framework/src/Volo.Abp.AspNetCore.Components.Web/Volo.Abp.AspNetCore.Components.Web.abppkg

4
framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/AbpBlazorMessageLocalizerHelper.cs

@ -20,7 +20,7 @@ public class AbpBlazorMessageLocalizerHelper<T>
{
var argumentsList = arguments?.ToList();
return argumentsList?.Count > 0
? stringLocalizer[message, LocalizeMessageArguments(argumentsList)]
? stringLocalizer[message, LocalizeMessageArguments(argumentsList).ToArray()]
: stringLocalizer[message];
}
catch
@ -29,7 +29,7 @@ public class AbpBlazorMessageLocalizerHelper<T>
}
}
private IEnumerable<string> LocalizeMessageArguments(List<string> arguments)
private IEnumerable<object> LocalizeMessageArguments(List<string> arguments)
{
foreach (var argument in arguments)
{

7
framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/Security/AbpComponentsClaimsCache.cs

@ -1,9 +1,9 @@
using System.Security.Claims;
using System.Threading.Tasks;
using JetBrains.Annotations;
using Microsoft.AspNetCore.Components.Authorization;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Security.Claims;
namespace Volo.Abp.AspNetCore.Components.Web.Security;
@ -12,18 +12,16 @@ public class AbpComponentsClaimsCache : IScopedDependency
public ClaimsPrincipal Principal { get; private set; } = default!;
private readonly AuthenticationStateProvider? _authenticationStateProvider;
private readonly IAbpClaimsPrincipalFactory _abpClaimsPrincipalFactory;
public AbpComponentsClaimsCache(
IClientScopeServiceProviderAccessor serviceProviderAccessor)
{
_authenticationStateProvider = serviceProviderAccessor.ServiceProvider.GetService<AuthenticationStateProvider>();
_abpClaimsPrincipalFactory = serviceProviderAccessor.ServiceProvider.GetRequiredService<IAbpClaimsPrincipalFactory>();
if (_authenticationStateProvider != null)
{
_authenticationStateProvider.AuthenticationStateChanged += async (task) =>
{
Principal = await _abpClaimsPrincipalFactory.CreateDynamicAsync((await task).User);
Principal = (await task).User;
};
}
}
@ -34,7 +32,6 @@ public class AbpComponentsClaimsCache : IScopedDependency
{
var authenticationState = await _authenticationStateProvider.GetAuthenticationStateAsync();
Principal = authenticationState.User;
await _abpClaimsPrincipalFactory.CreateDynamicAsync(Principal);
}
}
}

0
framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/Volo.Abp.AspNetCore.Components.WebAssembly.Theming.abppkg.json → framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/Volo.Abp.AspNetCore.Components.WebAssembly.Theming.abppkg

0
framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo.Abp.AspNetCore.Components.WebAssembly.abppkg.json → framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo.Abp.AspNetCore.Components.WebAssembly.abppkg

0
framework/src/Volo.Abp.AspNetCore.Components/Volo.Abp.AspNetCore.Components.abppkg.json → framework/src/Volo.Abp.AspNetCore.Components/Volo.Abp.AspNetCore.Components.abppkg

0
framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo.Abp.AspNetCore.MultiTenancy.abppkg.json → framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo.Abp.AspNetCore.MultiTenancy.abppkg

0
framework/src/Volo.Abp.AspNetCore.Mvc.Client.Common/Volo.Abp.AspNetCore.Mvc.Client.Common.abppkg.json → framework/src/Volo.Abp.AspNetCore.Mvc.Client.Common/Volo.Abp.AspNetCore.Mvc.Client.Common.abppkg

0
framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo.Abp.AspNetCore.Mvc.Client.abppkg.json → framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo.Abp.AspNetCore.Mvc.Client.abppkg

0
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo.Abp.AspNetCore.Mvc.Contracts.abppkg.json → framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo.Abp.AspNetCore.Mvc.Contracts.abppkg

0
framework/src/Volo.Abp.AspNetCore.Mvc.Dapr.EventBus/Volo.Abp.AspNetCore.Mvc.Dapr.EventBus.abppkg.json → framework/src/Volo.Abp.AspNetCore.Mvc.Dapr.EventBus/Volo.Abp.AspNetCore.Mvc.Dapr.EventBus.abppkg

0
framework/src/Volo.Abp.AspNetCore.Mvc.Dapr/Volo.Abp.AspNetCore.Mvc.Dapr.abppkg.json → framework/src/Volo.Abp.AspNetCore.Mvc.Dapr/Volo.Abp.AspNetCore.Mvc.Dapr.abppkg

0
framework/src/Volo.Abp.AspNetCore.Mvc.NewtonsoftJson/Volo.Abp.AspNetCore.Mvc.NewtonsoftJson.abppkg.json → framework/src/Volo.Abp.AspNetCore.Mvc.NewtonsoftJson/Volo.Abp.AspNetCore.Mvc.NewtonsoftJson.abppkg

22
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs

@ -289,7 +289,16 @@ public class AbpInputTagHelperService : AbpTagHelperService<AbpInputTagHelper>
label.Attributes.Add("data-bs-html", "true");
}
label.Attributes.Add("title", TagHelper.LabelTooltip);
label.InnerHtml.AppendHtml($" <i class=\"bi {TagHelper.LabelTooltipIcon}\"></i>");
var iconClass = TagHelper.LabelTooltipIcon;
if (iconClass.StartsWith("bi-"))
{
iconClass = "bi " + iconClass;
}
else if (iconClass.StartsWith("fa-"))
{
iconClass = "fa " + iconClass;
}
label.InnerHtml.AppendHtml($" <i class=\"{iconClass}\"></i>");
}
return label.ToHtmlString();
@ -372,7 +381,16 @@ public class AbpInputTagHelperService : AbpTagHelperService<AbpInputTagHelper>
var innerOutput = await labelTagHelper.ProcessAndGetOutputAsync(attributeList, context, "label", TagMode.StartTagAndEndTag);
if (!TagHelper.LabelTooltip.IsNullOrEmpty())
{
innerOutput.Content.AppendHtml($" <i class=\"bi {TagHelper.LabelTooltipIcon}\"></i>");
var iconClass = TagHelper.LabelTooltipIcon;
if (iconClass.StartsWith("bi-"))
{
iconClass = "bi " + iconClass;
}
else if (iconClass.StartsWith("fa-"))
{
iconClass = "fa " + iconClass;
}
innerOutput.Content.AppendHtml($" <i class=\"{iconClass}\"></i>");
}
return innerOutput.Render(_encoder);

22
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerBaseTagHelperService.cs

@ -547,7 +547,16 @@ public abstract class AbpDatePickerBaseTagHelperService<TTagHelper> : AbpTagHelp
}
label.Attributes.Add("title", TagHelper.LabelTooltip);
label.InnerHtml.AppendHtml($" <i class=\"bi {TagHelper.LabelTooltipIcon}\"></i>");
var iconClass = TagHelper.LabelTooltipIcon;
if (iconClass.StartsWith("bi-"))
{
iconClass = "bi " + iconClass;
}
else if (iconClass.StartsWith("fa-"))
{
iconClass = "fa " + iconClass;
}
label.InnerHtml.AppendHtml($" <i class=\"{iconClass}\"></i>");
}
return label.ToHtmlString();
@ -607,7 +616,16 @@ public abstract class AbpDatePickerBaseTagHelperService<TTagHelper> : AbpTagHelp
await labelTagHelper.ProcessAndGetOutputAsync(attributeList, context, "label", TagMode.StartTagAndEndTag);
if (!TagHelper.LabelTooltip.IsNullOrEmpty())
{
innerOutput.Content.AppendHtml($" <i class=\"bi {TagHelper.LabelTooltipIcon}\"></i>");
var iconClass = TagHelper.LabelTooltipIcon;
if (iconClass.StartsWith("bi-"))
{
iconClass = "bi " + iconClass;
}
else if (iconClass.StartsWith("fa-"))
{
iconClass = "fa " + iconClass;
}
innerOutput.Content.AppendHtml($" <i class=\"{iconClass}\"></i>");
}
return innerOutput.Render(Encoder);

0
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.abppkg.json → framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.abppkg

0
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling.Abstractions/Volo.Abp.AspNetCore.Mvc.UI.Bundling.Abstractions.abppkg.json → framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling.Abstractions/Volo.Abp.AspNetCore.Mvc.UI.Bundling.Abstractions.abppkg

0
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo.Abp.AspNetCore.Mvc.UI.Bundling.abppkg.json → framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo.Abp.AspNetCore.Mvc.UI.Bundling.abppkg

0
framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.abppkg.json → framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.abppkg

0
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo.Abp.AspNetCore.Mvc.UI.Packages.abppkg.json → framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo.Abp.AspNetCore.Mvc.UI.Packages.abppkg

0
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.abppkg.json → framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.abppkg

0
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.abppkg.json → framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.abppkg

0
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Widgets/Volo.Abp.AspNetCore.Mvc.UI.Widgets.abppkg.json → framework/src/Volo.Abp.AspNetCore.Mvc.UI.Widgets/Volo.Abp.AspNetCore.Mvc.UI.Widgets.abppkg

0
framework/src/Volo.Abp.AspNetCore.Mvc.UI/Volo.Abp.AspNetCore.Mvc.UI.abppkg.json → framework/src/Volo.Abp.AspNetCore.Mvc.UI/Volo.Abp.AspNetCore.Mvc.UI.abppkg

0
framework/src/Volo.Abp.AspNetCore.Mvc/Volo.Abp.AspNetCore.Mvc.abppkg.json → framework/src/Volo.Abp.AspNetCore.Mvc/Volo.Abp.AspNetCore.Mvc.abppkg

0
framework/src/Volo.Abp.AspNetCore.Serilog/Volo.Abp.AspNetCore.Serilog.abppkg.json → framework/src/Volo.Abp.AspNetCore.Serilog/Volo.Abp.AspNetCore.Serilog.abppkg

0
framework/src/Volo.Abp.AspNetCore.SignalR/Volo.Abp.AspNetCore.SignalR.abppkg.json → framework/src/Volo.Abp.AspNetCore.SignalR/Volo.Abp.AspNetCore.SignalR.abppkg

0
framework/src/Volo.Abp.AspNetCore.TestBase/Volo.Abp.AspNetCore.TestBase.abppkg.json → framework/src/Volo.Abp.AspNetCore.TestBase/Volo.Abp.AspNetCore.TestBase.abppkg

0
framework/src/Volo.Abp.AspNetCore/Volo.Abp.AspNetCore.abppkg.json → framework/src/Volo.Abp.AspNetCore/Volo.Abp.AspNetCore.abppkg

0
framework/src/Volo.Abp.Auditing.Contracts/Volo.Abp.Auditing.Contracts.abppkg.json → framework/src/Volo.Abp.Auditing.Contracts/Volo.Abp.Auditing.Contracts.abppkg

0
framework/src/Volo.Abp.Auditing/Volo.Abp.Auditing.abppkg.json → framework/src/Volo.Abp.Auditing/Volo.Abp.Auditing.abppkg

0
framework/src/Volo.Abp.Authorization.Abstractions/Volo.Abp.Authorization.Abstractions.abppkg.json → framework/src/Volo.Abp.Authorization.Abstractions/Volo.Abp.Authorization.Abstractions.abppkg

0
framework/src/Volo.Abp.Authorization/Volo.Abp.Authorization.abppkg.json → framework/src/Volo.Abp.Authorization/Volo.Abp.Authorization.abppkg

0
framework/src/Volo.Abp.AutoMapper/Volo.Abp.AutoMapper.abppkg.json → framework/src/Volo.Abp.AutoMapper/Volo.Abp.AutoMapper.abppkg

0
framework/src/Volo.Abp.Autofac.WebAssembly/Volo.Abp.Autofac.WebAssembly.abppkg.json → framework/src/Volo.Abp.Autofac.WebAssembly/Volo.Abp.Autofac.WebAssembly.abppkg

25
framework/src/Volo.Abp.Autofac/Autofac/Builder/AbpRegistrationBuilderExtensions.cs

@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using Autofac.Core;
using Autofac.Extras.DynamicProxy;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Autofac;
using Volo.Abp.Castle.DynamicProxy;
using Volo.Abp.DependencyInjection;
@ -14,10 +15,14 @@ public static class AbpRegistrationBuilderExtensions
{
public static IRegistrationBuilder<TLimit, TActivatorData, TRegistrationStyle> ConfigureAbpConventions<TLimit, TActivatorData, TRegistrationStyle>(
this IRegistrationBuilder<TLimit, TActivatorData, TRegistrationStyle> registrationBuilder,
ServiceDescriptor serviceDescriptor,
IModuleContainer moduleContainer,
ServiceRegistrationActionList registrationActionList)
ServiceRegistrationActionList registrationActionList,
ServiceActivatedActionList activatedActionList)
where TActivatorData : ReflectionActivatorData
{
registrationBuilder = registrationBuilder.InvokeActivatedActions(activatedActionList, serviceDescriptor);
var serviceType = registrationBuilder.RegistrationData.Services.OfType<IServiceWithType>().FirstOrDefault()?.ServiceType;
if (serviceType == null)
{
@ -36,6 +41,24 @@ public static class AbpRegistrationBuilderExtensions
return registrationBuilder;
}
private static IRegistrationBuilder<TLimit, TActivatorData, TRegistrationStyle> InvokeActivatedActions<TLimit, TActivatorData, TRegistrationStyle>(
this IRegistrationBuilder<TLimit, TActivatorData, TRegistrationStyle> registrationBuilder,
ServiceActivatedActionList activatedActionList,
ServiceDescriptor serviceDescriptor)
where TActivatorData : ReflectionActivatorData
{
registrationBuilder.OnActivated(context =>
{
var serviceActivatedContext = new OnServiceActivatedContext(context.Instance!);
foreach (var action in activatedActionList.GetActions(serviceDescriptor))
{
action.Invoke(serviceActivatedContext);
}
});
return registrationBuilder;
}
private static IRegistrationBuilder<TLimit, TActivatorData, TRegistrationStyle> InvokeRegistrationActions<TLimit, TActivatorData, TRegistrationStyle>(
this IRegistrationBuilder<TLimit, TActivatorData, TRegistrationStyle> registrationBuilder,
ServiceRegistrationActionList registrationActionList,

5
framework/src/Volo.Abp.Autofac/Autofac/Extensions/DependencyInjection/AutofacRegistration.cs

@ -183,6 +183,7 @@ public static class AutofacRegistration
{
var moduleContainer = services.GetSingletonInstance<IModuleContainer>();
var registrationActionList = services.GetRegistrationActionList();
var activatedActionList = services.GetServiceActivatedActionList();
foreach (var descriptor in services)
{
@ -196,7 +197,7 @@ public static class AutofacRegistration
.RegisterGeneric(descriptor.ImplementationType)
.As(descriptor.ServiceType)
.ConfigureLifecycle(descriptor.Lifetime, lifetimeScopeTagForSingletons)
.ConfigureAbpConventions(moduleContainer, registrationActionList);
.ConfigureAbpConventions(descriptor, moduleContainer, registrationActionList, activatedActionList);
}
else
{
@ -204,7 +205,7 @@ public static class AutofacRegistration
.RegisterType(descriptor.ImplementationType)
.As(descriptor.ServiceType)
.ConfigureLifecycle(descriptor.Lifetime, lifetimeScopeTagForSingletons)
.ConfigureAbpConventions(moduleContainer, registrationActionList);
.ConfigureAbpConventions(descriptor, moduleContainer, registrationActionList, activatedActionList);
}
}
else if (descriptor.ImplementationFactory != null)

0
framework/src/Volo.Abp.Autofac/Volo.Abp.Autofac.abppkg.json → framework/src/Volo.Abp.Autofac/Volo.Abp.Autofac.abppkg

0
framework/src/Volo.Abp.AzureServiceBus/Volo.Abp.AzureServiceBus.abppkg.json → framework/src/Volo.Abp.AzureServiceBus/Volo.Abp.AzureServiceBus.abppkg

0
framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo.Abp.BackgroundJobs.Abstractions.abppkg.json → framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo.Abp.BackgroundJobs.Abstractions.abppkg

0
framework/src/Volo.Abp.BackgroundJobs.HangFire/Volo.Abp.BackgroundJobs.HangFire.abppkg.json → framework/src/Volo.Abp.BackgroundJobs.HangFire/Volo.Abp.BackgroundJobs.HangFire.abppkg

0
framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo.Abp.BackgroundJobs.Quartz.abppkg.json → framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo.Abp.BackgroundJobs.Quartz.abppkg

0
framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo.Abp.BackgroundJobs.RabbitMQ.abppkg.json → framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo.Abp.BackgroundJobs.RabbitMQ.abppkg

0
framework/src/Volo.Abp.BackgroundJobs/Volo.Abp.BackgroundJobs.abppkg.json → framework/src/Volo.Abp.BackgroundJobs/Volo.Abp.BackgroundJobs.abppkg

0
framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo.Abp.BackgroundWorkers.Hangfire.abppkg.json → framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo.Abp.BackgroundWorkers.Hangfire.abppkg

0
framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo.Abp.BackgroundWorkers.Quartz.abppkg.json → framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo.Abp.BackgroundWorkers.Quartz.abppkg

0
framework/src/Volo.Abp.BackgroundWorkers/Volo.Abp.BackgroundWorkers.abppkg.json → framework/src/Volo.Abp.BackgroundWorkers/Volo.Abp.BackgroundWorkers.abppkg

0
framework/src/Volo.Abp.BlobStoring.Aliyun/Volo.Abp.BlobStoring.Aliyun.abppkg.json → framework/src/Volo.Abp.BlobStoring.Aliyun/Volo.Abp.BlobStoring.Aliyun.abppkg

0
framework/src/Volo.Abp.BlobStoring.Aws/Volo.Abp.BlobStoring.Aws.abppkg.json → framework/src/Volo.Abp.BlobStoring.Aws/Volo.Abp.BlobStoring.Aws.abppkg

0
framework/src/Volo.Abp.BlobStoring.Azure/Volo.Abp.BlobStoring.Azure.abppkg.json → framework/src/Volo.Abp.BlobStoring.Azure/Volo.Abp.BlobStoring.Azure.abppkg

0
framework/src/Volo.Abp.BlobStoring.FileSystem/Volo.Abp.BlobStoring.FileSystem.abppkg.json → framework/src/Volo.Abp.BlobStoring.FileSystem/Volo.Abp.BlobStoring.FileSystem.abppkg

0
framework/src/Volo.Abp.BlobStoring.Minio/Volo.Abp.BlobStoring.Minio.abppkg.json → framework/src/Volo.Abp.BlobStoring.Minio/Volo.Abp.BlobStoring.Minio.abppkg

0
framework/src/Volo.Abp.BlobStoring/Volo.Abp.BlobStoring.abppkg.json → framework/src/Volo.Abp.BlobStoring/Volo.Abp.BlobStoring.abppkg

0
framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo.Abp.Caching.StackExchangeRedis.abppkg.json → framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo.Abp.Caching.StackExchangeRedis.abppkg

0
framework/src/Volo.Abp.Caching/Volo.Abp.Caching.abppkg.json → framework/src/Volo.Abp.Caching/Volo.Abp.Caching.abppkg

0
framework/src/Volo.Abp.Castle.Core/Volo.Abp.Castle.Core.abppkg.json → framework/src/Volo.Abp.Castle.Core/Volo.Abp.Castle.Core.abppkg

0
framework/src/Volo.Abp.Cli.Core/Volo.Abp.Cli.Core.abppkg.json → framework/src/Volo.Abp.Cli.Core/Volo.Abp.Cli.Core.abppkg

2
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs

@ -119,7 +119,7 @@ public class NewCommand : ProjectCreationCommandBase, IConsoleCommand, ITransien
var skipBundling = commandLineArgs.Options.ContainsKey(Options.SkipBundling.Long) || commandLineArgs.Options.ContainsKey(Options.SkipBundling.Short);
if (!skipBundling)
{
await RunBundleForBlazorWasmOrMauiBlazorTemplateAsync(projectArgs);
await RunBundleInternalAsync(projectArgs);
}
await ConfigurePwaSupportForAngular(projectArgs);

51
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs

@ -419,26 +419,49 @@ public abstract class ProjectCreationCommandBase
}
}
protected async Task RunBundleForBlazorWasmOrMauiBlazorTemplateAsync(ProjectBuildArgs projectArgs)
protected virtual async Task RunBundleInternalAsync(ProjectBuildArgs projectArgs)
{
if ((AppTemplateBase.IsAppTemplate(projectArgs.TemplateName) || AppNoLayersTemplateBase.IsAppNoLayersTemplate(projectArgs.TemplateName))
&& projectArgs.UiFramework is UiFramework.Blazor or UiFramework.MauiBlazor)
if (!ShouldRunBundleCommand(projectArgs))
{
var isWebassembly = projectArgs.UiFramework == UiFramework.Blazor;
var message = isWebassembly ? "Generating bundles for Blazor Wasm" : "Generating bundles for MAUI Blazor";
Logger.LogInformation($"{message}...");
return;
}
var isWebassembly = projectArgs.UiFramework == UiFramework.Blazor;
var message = isWebassembly ? "Generating bundles for Blazor Wasm" : "Generating bundles for MAUI Blazor";
Logger.LogInformation(message + "...");
await EventBus.PublishAsync(new ProjectCreationProgressEvent
{
Message = message
}, false);
await EventBus.PublishAsync(new ProjectCreationProgressEvent
{
Message = message
}, false);
var path = projectArgs.OutputFolder;
if (projectArgs.TemplateName == MicroserviceProTemplate.TemplateName)
{
path = Path.Combine(path, "apps");
}
var directory = Path.GetDirectoryName(
Directory.GetFiles(path, isWebassembly ? "*.Blazor.csproj" : "*.MauiBlazor.csproj", SearchOption.AllDirectories).First()
);
var directory = Path.GetDirectoryName(
Directory.GetFiles(projectArgs.OutputFolder, isWebassembly? "*.Blazor.csproj" :"*.MauiBlazor.csproj", SearchOption.AllDirectories).First()
);
await _bundlingService.BundleAsync(directory, true, projectType: isWebassembly ? BundlingConsts.WebAssembly : BundlingConsts.MauiBlazor);
}
await _bundlingService.BundleAsync(directory, true, projectType: isWebassembly ? BundlingConsts.WebAssembly : BundlingConsts.MauiBlazor);
protected virtual bool ShouldRunBundleCommand(ProjectBuildArgs projectArgs)
{
if ((AppTemplateBase.IsAppTemplate(projectArgs.TemplateName) || AppNoLayersTemplateBase.IsAppNoLayersTemplate(projectArgs.TemplateName))
&& projectArgs.UiFramework is UiFramework.Blazor or UiFramework.MauiBlazor)
{
return true;
}
if (projectArgs.TemplateName == MicroserviceProTemplate.TemplateName && projectArgs.UiFramework is UiFramework.Blazor)
{
return true;
}
return false;
}
protected async Task CreateInitialMigrationsAsync(ProjectBuildArgs projectArgs)

2
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveProjectFromSolutionStep.cs

@ -45,7 +45,7 @@ public class RemoveProjectFromSolutionStep : ProjectBuildPipelineStep
private void RemoveProjectFromAbpmdlFile(ProjectBuildContext context)
{
var abpmdlFile = context.FindFile(_solutionFilePath.RemovePostFix(".sln") + ".abpmdl.json");
var abpmdlFile = context.FindFile(_solutionFilePath.RemovePostFix(".sln") + ".abpmdl");
if (abpmdlFile == null)
{

20
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateSwitchEntityFrameworkCoreToMongoDbStep.cs

@ -45,7 +45,7 @@ public class AppTemplateSwitchEntityFrameworkCoreToMongoDbStep : ProjectBuildPip
_hasDbMigrations ? "EntityFrameworkCore.DbMigrations" : "EntityFrameworkCore",
"MongoDB"
);
ChangeNamespaceAndKeyword(
context,
"/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs",
@ -194,6 +194,22 @@ public class AppTemplateSwitchEntityFrameworkCoreToMongoDbStep : ProjectBuildPip
"MyProjectNameMongoDbCollectionFixtureBase"
);
ChangeNamespaceAndKeyword(
context,
"/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests/MyProjectNameWebTestModule.cs",
"MyCompanyName.MyProjectName.EntityFrameworkCore",
"MyCompanyName.MyProjectName.MongoDB",
"MyProjectNameEntityFrameworkCoreTestModule",
"MyProjectNameMongoDbTestModule"
);
ChangeProjectReference(
context,
"/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests/MyCompanyName.MyProjectName.Web.Tests.csproj",
"EntityFrameworkCore",
"MongoDB"
);
// TODO: remove this method after published 6.0.0
ProvideIdentityServerBackwardCompatibility(context);
@ -309,7 +325,7 @@ public class AppTemplateSwitchEntityFrameworkCoreToMongoDbStep : ProjectBuildPip
throw new ApplicationException("Could not find the 'Default' connection string in appsettings.json file!");
}
// TODO: remove this method after published 6.0.0
private void ProvideIdentityServerBackwardCompatibility(ProjectBuildContext context)
{

0
framework/src/Volo.Abp.Cli/Volo.Abp.Cli.abppkg.json → framework/src/Volo.Abp.Cli/Volo.Abp.Cli.abppkg

31
framework/src/Volo.Abp.Core/Microsoft/Extensions/DependencyInjection/ServiceCollectionLifetimeEventExtensions.cs

@ -0,0 +1,31 @@
using System;
using System.Collections.Generic;
using Volo.Abp.DependencyInjection;
namespace Microsoft.Extensions.DependencyInjection;
public static class ServiceCollectionLifetimeEventExtensions
{
// OnActivated
public static void OnActivated(this IServiceCollection services, ServiceDescriptor descriptor, Action<IOnServiceActivatedContext> onActivatedAction)
{
GetOrCreateOnActivatedActionList(services).Add(new KeyValuePair<ServiceDescriptor, Action<IOnServiceActivatedContext>>(descriptor, onActivatedAction));
}
public static ServiceActivatedActionList GetServiceActivatedActionList(this IServiceCollection services)
{
return GetOrCreateOnActivatedActionList(services);
}
private static ServiceActivatedActionList GetOrCreateOnActivatedActionList(IServiceCollection services)
{
var actionList = services.GetSingletonInstanceOrNull<IObjectAccessor<ServiceActivatedActionList>>()?.Value;
if (actionList == null)
{
actionList = new ServiceActivatedActionList();
services.AddObjectAccessor(actionList);
}
return actionList;
}
}

0
framework/src/Volo.Abp.Core/Volo.Abp.Core.abppkg.json → framework/src/Volo.Abp.Core/Volo.Abp.Core.abppkg

6
framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/IOnServiceActivatedContext.cs

@ -0,0 +1,6 @@
namespace Volo.Abp.DependencyInjection;
public interface IOnServiceActivatedContext
{
public object Instance { get; }
}

11
framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/OnServiceActivatedContext.cs

@ -0,0 +1,11 @@
namespace Volo.Abp.DependencyInjection;
public class OnServiceActivatedContext : IOnServiceActivatedContext
{
public object Instance { get; set; }
public OnServiceActivatedContext(object instance)
{
Instance = instance;
}
}

14
framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/ServiceActivatedActionList.cs

@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Extensions.DependencyInjection;
namespace Volo.Abp.DependencyInjection;
public class ServiceActivatedActionList : List<KeyValuePair<ServiceDescriptor, Action<IOnServiceActivatedContext>>>
{
public List<Action<IOnServiceActivatedContext>> GetActions(ServiceDescriptor descriptor)
{
return this.Where(x => x.Key == descriptor).Select(x => x.Value).ToList();
}
}

0
framework/src/Volo.Abp.Dapper/Volo.Abp.Dapper.abppkg.json → framework/src/Volo.Abp.Dapper/Volo.Abp.Dapper.abppkg

0
framework/src/Volo.Abp.Dapr/Volo.Abp.Dapr.abppkg.json → framework/src/Volo.Abp.Dapr/Volo.Abp.Dapr.abppkg

0
framework/src/Volo.Abp.Data/Volo.Abp.Data.abppkg.json → framework/src/Volo.Abp.Data/Volo.Abp.Data.abppkg

0
framework/src/Volo.Abp.Ddd.Application.Contracts/Volo.Abp.Ddd.Application.Contracts.abppkg.json → framework/src/Volo.Abp.Ddd.Application.Contracts/Volo.Abp.Ddd.Application.Contracts.abppkg

0
framework/src/Volo.Abp.Ddd.Application/Volo.Abp.Ddd.Application.abppkg.json → framework/src/Volo.Abp.Ddd.Application/Volo.Abp.Ddd.Application.abppkg

12
framework/src/Volo.Abp.Ddd.Domain/Microsoft/Extensions/DependencyInjection/ServiceCollectionRepositoryExtensions.cs

@ -84,22 +84,16 @@ public static class ServiceCollectionRepositoryExtensions
bool replaceExisting,
bool isReadOnlyRepository = false)
{
ServiceDescriptor descriptor;
var descriptor = ServiceDescriptor.Transient(serviceType, implementationType);
if (isReadOnlyRepository)
{
services.TryAddTransient(implementationType);
descriptor = ServiceDescriptor.Transient(serviceType, provider =>
services.OnActivated(descriptor, context =>
{
var repository = provider.GetRequiredService(implementationType);
var repository = context.Instance.As<IRepository>();
ObjectHelper.TrySetProperty(repository.As<IRepository>(), x => x.IsChangeTrackingEnabled, _ => false);
return repository;
});
}
else
{
descriptor = ServiceDescriptor.Transient(serviceType, implementationType);
}
if (replaceExisting)
{

0
framework/src/Volo.Abp.Ddd.Domain/Volo.Abp.Ddd.Domain.abppkg.json → framework/src/Volo.Abp.Ddd.Domain/Volo.Abp.Ddd.Domain.abppkg

0
framework/src/Volo.Abp.DistributedLocking.Abstractions/Volo.Abp.DistributedLocking.Abstractions.abppkg.json → framework/src/Volo.Abp.DistributedLocking.Abstractions/Volo.Abp.DistributedLocking.Abstractions.abppkg

0
framework/src/Volo.Abp.DistributedLocking.Dapr/Volo.Abp.DistributedLocking.Dapr.abppkg.json → framework/src/Volo.Abp.DistributedLocking.Dapr/Volo.Abp.DistributedLocking.Dapr.abppkg

0
framework/src/Volo.Abp.DistributedLocking/Volo.Abp.DistributedLocking.abppkg.json → framework/src/Volo.Abp.DistributedLocking/Volo.Abp.DistributedLocking.abppkg

0
framework/src/Volo.Abp.Emailing/Volo.Abp.Emailing.abppkg.json → framework/src/Volo.Abp.Emailing/Volo.Abp.Emailing.abppkg

0
framework/src/Volo.Abp.EntityFrameworkCore.MySQL/Volo.Abp.EntityFrameworkCore.MySQL.abppkg.json → framework/src/Volo.Abp.EntityFrameworkCore.MySQL/Volo.Abp.EntityFrameworkCore.MySQL.abppkg

0
framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo.Abp.EntityFrameworkCore.Oracle.Devart.abppkg.json → framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo.Abp.EntityFrameworkCore.Oracle.Devart.abppkg

0
framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo.Abp.EntityFrameworkCore.Oracle.abppkg.json → framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo.Abp.EntityFrameworkCore.Oracle.abppkg

0
framework/src/Volo.Abp.EntityFrameworkCore.PostgreSql/Volo.Abp.EntityFrameworkCore.PostgreSql.abppkg.json → framework/src/Volo.Abp.EntityFrameworkCore.PostgreSql/Volo.Abp.EntityFrameworkCore.PostgreSql.abppkg

0
framework/src/Volo.Abp.EntityFrameworkCore.SqlServer/Volo.Abp.EntityFrameworkCore.SqlServer.abppkg.json → framework/src/Volo.Abp.EntityFrameworkCore.SqlServer/Volo.Abp.EntityFrameworkCore.SqlServer.abppkg

0
framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo.Abp.EntityFrameworkCore.Sqlite.abppkg.json → framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo.Abp.EntityFrameworkCore.Sqlite.abppkg

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save