Browse Source

feat: update micro template to 9.1.1

pull/1179/head
colin 10 months ago
parent
commit
7f7f1f0a89
  1. 7
      aspnet-core/LINGYUN.MicroService.All.sln
  2. 41
      aspnet-core/framework/telemetry/LINGYUN.Abp.Telemetry.OpenTelemetry/LINGYUN/Abp/Telemetry/OpenTelemetry/AbpTelemetryOpenTelemetryModule.cs
  3. 2
      aspnet-core/framework/telemetry/LINGYUN.Abp.Telemetry.SkyWalking/LINGYUN/Abp/Telemetry/SkyWalking/AbpTelemetrySkyWalkingModule.cs
  4. 2
      aspnet-core/templates/micro/PackageName.CompanyName.ProjectName.csproj
  5. 22
      aspnet-core/templates/micro/content/.template.config/template.json
  6. 72
      aspnet-core/templates/micro/content/Directory.Packages.props
  7. 2
      aspnet-core/templates/micro/content/PackageName.CompanyName.ProjectName.sln
  8. 4
      aspnet-core/templates/micro/content/common.props
  9. 2
      aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/Dockerfile
  10. 13
      aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/PackageName.CompanyName.ProjectName.HttpApi.Host.csproj
  11. 92
      aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/Program.cs
  12. 79
      aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/ProjectNameHttpApiHostModule.Configure.cs
  13. 21
      aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/ProjectNameHttpApiHostModule.cs
  14. 47
      aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/appsettings.Development.json
  15. 2
      aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/appsettings.json
  16. 2
      aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore.csproj
  17. 2
      aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore/ProjectNameDbContextFactory.cs
  18. 1
      aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Application.Contracts/PackageName.CompanyName.ProjectName.Application.Contracts.csproj
  19. 1
      aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Application/PackageName.CompanyName.ProjectName.Application.csproj
  20. 6
      aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Dapr.Client/PackageName.CompanyName.ProjectName.Dapr.Client.csproj
  21. 1
      aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain.Shared/PackageName.CompanyName.ProjectName.Domain.Shared.csproj
  22. 1
      aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain/PackageName.CompanyName.ProjectName.Domain.csproj
  23. 2
      aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain/PackageName/CompanyName/ProjectName/ProjectNameDbProperties.cs
  24. 1
      aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.EntityFrameworkCore/PackageName.CompanyName.ProjectName.EntityFrameworkCore.csproj
  25. 21
      aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.EntityFrameworkCore/PackageName/CompanyName/ProjectName/EntityFrameworkCore/EfCoreProjectNameRepository.cs
  26. 2
      aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.EntityFrameworkCore/PackageName/CompanyName/ProjectName/EntityFrameworkCore/ProjectNameDbContextModelCreatingExtensions.cs
  27. 2
      aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.EntityFrameworkCore/PackageName/CompanyName/ProjectName/EntityFrameworkCore/ProjectNameModelBuilderConfigurationOptions.cs
  28. 1
      aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.HttpApi.Client/PackageName.CompanyName.ProjectName.HttpApi.Client.csproj
  29. 1
      aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.HttpApi/PackageName.CompanyName.ProjectName.HttpApi.csproj
  30. 1
      aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.SettingManagement/PackageName.CompanyName.ProjectName.SettingManagement.csproj
  31. 10
      aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.SettingManagement/PackageName/CompanyName/ProjectName/SettingManagement/ProjectNameSettingAppService.cs

7
aspnet-core/LINGYUN.MicroService.All.sln

@ -835,6 +835,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.IP2Region", "fr
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.AuditLogging.IP.Location", "framework\auditing\LINGYUN.Abp.AuditLogging.IP.Location\LINGYUN.Abp.AuditLogging.IP.Location.csproj", "{D63FEED3-2342-7E96-4121-B0C19CF1EA81}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.Saas.DbChecker", "modules\saas\LINGYUN.Abp.Saas.DbChecker\LINGYUN.Abp.Saas.DbChecker.csproj", "{DED16774-635C-D781-4D5B-D1FA56EECF10}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -2161,6 +2163,10 @@ Global
{D63FEED3-2342-7E96-4121-B0C19CF1EA81}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D63FEED3-2342-7E96-4121-B0C19CF1EA81}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D63FEED3-2342-7E96-4121-B0C19CF1EA81}.Release|Any CPU.Build.0 = Release|Any CPU
{DED16774-635C-D781-4D5B-D1FA56EECF10}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DED16774-635C-D781-4D5B-D1FA56EECF10}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DED16774-635C-D781-4D5B-D1FA56EECF10}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DED16774-635C-D781-4D5B-D1FA56EECF10}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -2566,6 +2572,7 @@ Global
{418EE258-2670-29D3-480F-EC0FD07700E8} = {8AC72641-30D3-4ACF-89FA-808FADC55C2E}
{7984F6B6-726F-9F30-3B6F-08A90AD75A7D} = {8AC72641-30D3-4ACF-89FA-808FADC55C2E}
{D63FEED3-2342-7E96-4121-B0C19CF1EA81} = {6A3FF105-7E8B-4B4D-A736-1C2BAF86FDAA}
{DED16774-635C-D781-4D5B-D1FA56EECF10} = {D01D859E-4B72-478A-BABD-90F0981652D5}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {C95FDF91-16F2-4A8B-A4BE-0E62D1B66718}

41
aspnet-core/framework/telemetry/LINGYUN.Abp.Telemetry.OpenTelemetry/LINGYUN/Abp/Telemetry/OpenTelemetry/AbpTelemetryOpenTelemetryModule.cs

@ -14,30 +14,37 @@ public class AbpTelemetryOpenTelemetryModule : AbpModule
public override void ConfigureServices(ServiceConfigurationContext context)
{
var configuration = context.Services.GetConfiguration();
var applicationName = context.Services.GetApplicationName();
var openTelmetrySetup = context.Services.GetPreConfigureActions<OpenTelemetryBuilder>();
var openTelemetryEnabled = configuration["OpenTelemetry:IsEnabled"];
if (openTelemetryEnabled.IsNullOrEmpty() || bool.Parse(openTelemetryEnabled))
if (openTelemetryEnabled.IsNullOrWhiteSpace() || "false".Equals(openTelemetryEnabled.ToLower()))
{
var openTelmetryBuilder = context.Services.AddOpenTelemetry()
.ConfigureResource(resource =>
{
resource.AddService(applicationName);
})
.WithTracing(tracing =>
{
tracing.AddSource(applicationName);
ConfigureTracing(tracing, configuration);
})
.WithMetrics(metrics =>
{
ConfigureMetrics(metrics, configuration);
});
return;
}
openTelmetrySetup.Configure(openTelmetryBuilder);
var applicationName = configuration["OpenTelemetry:ServiceName"];
if (applicationName.IsNullOrWhiteSpace())
{
applicationName = context.Services.GetApplicationName();
}
var openTelmetryBuilder = context.Services
.AddOpenTelemetry()
.ConfigureResource(resource =>
{
resource.AddService(applicationName);
})
.WithTracing(tracing =>
{
tracing.AddSource(applicationName);
ConfigureTracing(tracing, configuration);
})
.WithMetrics(metrics =>
{
ConfigureMetrics(metrics, configuration);
});
openTelmetrySetup.Configure(openTelmetryBuilder);
}
private static void ConfigureTracing(TracerProviderBuilder tracing, IConfiguration configuration)

2
aspnet-core/framework/telemetry/LINGYUN.Abp.Telemetry.SkyWalking/LINGYUN/Abp/Telemetry/SkyWalking/AbpTelemetrySkyWalkingModule.cs

@ -12,7 +12,7 @@ public class AbpTelemetrySkyWalkingModule : AbpModule
public override void ConfigureServices(ServiceConfigurationContext context)
{
var configuration = context.Services.GetConfiguration();
var isSkywalkingEnabled = configuration["SkyWalking:Enable"];
var isSkywalkingEnabled = configuration["SkyWalking:IsEnabled"];
if (isSkywalkingEnabled.IsNullOrWhiteSpace() || "false".Equals(isSkywalkingEnabled.ToLower()))
{
return;

2
aspnet-core/templates/micro/PackageName.CompanyName.ProjectName.csproj

@ -3,7 +3,7 @@
<TargetFramework>net9.0</TargetFramework> <!-- 或其他适合的框架 -->
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<PackageId>LINGYUN.Abp.MicroService.Templates</PackageId>
<Version>9.0.4</Version>
<Version>9.1.1</Version>
<Authors>colin.in@foxmail.com</Authors>
<Description>Abp framework micro-service template</Description>
<PackageLicenseExpression>MIT</PackageLicenseExpression>

22
aspnet-core/templates/micro/content/.template.config/template.json

@ -30,20 +30,20 @@
"sourceName": "ProjectName",
"preferNameDirectory": true,
"symbols": {
"AuthenticationScheme": {
"Telemetry": {
"type": "parameter",
"description": "Authentication Scheme",
"description": "Distributed tracking provider",
"datatype": "choice",
"defaultValue": "IdentityServer4",
"defaultValue": "OpenTelemetry",
"isRequired": false,
"choices": [
{
"choice": "IdentityServer4",
"description": "IdentityServer4"
"choice": "SkyWalking",
"description": "Use SkyWalking"
},
{
"choice": "OpenIddict",
"description": "OpenIddict"
"choice": "OpenTelemetry",
"description": "Use OpenTelemetry"
}
]
},
@ -104,13 +104,13 @@
"type": "computed",
"value": "(DatabaseManagement == \"PostgreSql\")"
},
"IdentityServer4": {
"SkyWalking": {
"type": "computed",
"value": "(AuthenticationScheme == \"IdentityServer4\")"
"value": "(Telemetry == \"SkyWalking\")"
},
"OpenIddict": {
"OpenTelemetry": {
"type": "computed",
"value": "(AuthenticationScheme == \"OpenIddict\")"
"value": "(Telemetry == \"OpenTelemetry\")"
}
}
}

72
aspnet-core/templates/micro/content/Directory.Packages.props

@ -2,8 +2,8 @@
<PropertyGroup>
<DotNetCoreCAPPackageVersion>8.3.2</DotNetCoreCAPPackageVersion>
<ElsaPackageVersion>2.14.1</ElsaPackageVersion>
<VoloAbpPackageVersion>9.0.4</VoloAbpPackageVersion>
<LINGYUNAbpPackageVersion>9.0.4</LINGYUNAbpPackageVersion>
<VoloAbpPackageVersion>9.1.1</VoloAbpPackageVersion>
<LINGYUNAbpPackageVersion>9.1.1</LINGYUNAbpPackageVersion>
<MicrosoftExtensionsPackageVersion>9.0.0.0</MicrosoftExtensionsPackageVersion>
<MicrosoftAspNetCorePackageVersion>9.0.0.0</MicrosoftAspNetCorePackageVersion>
<MicrosoftEntityFrameworkCorePackageVersion>9.0.0.0</MicrosoftEntityFrameworkCorePackageVersion>
@ -214,6 +214,9 @@
<PackageVersion Include="LINGYUN.Abp.TaskManagement.Domain" Version="$(LINGYUNAbpPackageVersion)" />
<PackageVersion Include="LINGYUN.Abp.TaskManagement.EntityFrameworkCore" Version="$(LINGYUNAbpPackageVersion)" />
<PackageVersion Include="LINGYUN.Abp.TaskManagement.HttpApi" Version="$(LINGYUNAbpPackageVersion)" />
<PackageVersion Include="LINGYUN.Abp.Telemetry.APM" Version="$(LINGYUNAbpPackageVersion)" />
<PackageVersion Include="LINGYUN.Abp.Telemetry.OpenTelemetry" Version="$(LINGYUNAbpPackageVersion)" />
<PackageVersion Include="LINGYUN.Abp.Telemetry.SkyWalking" Version="$(LINGYUNAbpPackageVersion)" />
<PackageVersion Include="LINGYUN.Abp.TextTemplating.Application.Contracts" Version="$(LINGYUNAbpPackageVersion)" />
<PackageVersion Include="LINGYUN.Abp.TextTemplating.Application" Version="$(LINGYUNAbpPackageVersion)" />
<PackageVersion Include="LINGYUN.Abp.TextTemplating.Domain.Shared" Version="$(LINGYUNAbpPackageVersion)" />
@ -229,11 +232,13 @@
<PackageVersion Include="LINGYUN.Abp.WebhooksManagement.HttpApi" Version="$(LINGYUNAbpPackageVersion)" />
<PackageVersion Include="LINGYUN.Platform.Application.Contracts" Version="$(LINGYUNAbpPackageVersion)" />
<PackageVersion Include="LINGYUN.Platform.Application" Version="$(LINGYUNAbpPackageVersion)" />
<PackageVersion Include="LINGYUN.Abp.Emailing.Platform" Version="$(LINGYUNAbpPackageVersion)" />
<PackageVersion Include="LINGYUN.Abp.Sms.Platform" Version="$(LINGYUNAbpPackageVersion)" />
</ItemGroup>
<!-- Abp Framework -->
<ItemGroup>
<PackageVersion Include="Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite" Version="3.2.0" />
<PackageVersion Include="Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite" Version="4.1.1" />
<PackageVersion Include="Volo.Abp.Core" Version="$(VoloAbpPackageVersion)" />
<PackageVersion Include="Volo.Abp.Account.Application" Version="$(VoloAbpPackageVersion)" />
<PackageVersion Include="Volo.Abp.Account.Application.Contracts" Version="$(VoloAbpPackageVersion)" />
@ -381,7 +386,8 @@
<PackageVersion Include="Microsoft.Extensions.Http.Polly" Version="$(MicrosoftExtensionsPackageVersion)" />
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="$(MicrosoftExtensionsPackageVersion)" />
<PackageVersion Include="Microsoft.Extensions.Options" Version="$(MicrosoftExtensionsPackageVersion)" />
<PackageVersion Include="Pomelo.EntityFrameworkCore.MySql" Version="9.0.0-preview.2.efcore.9.0.0" />
<PackageVersion Include="Pomelo.EntityFrameworkCore.MySql" Version="9.0.0-preview.3.efcore.9.0.0" />
<PackageVersion Include="Pomelo.EntityFrameworkCore.MySql.Json.Microsoft" Version="9.0.0-preview.3.efcore.9.0.0" />
</ItemGroup>
<!-- Elsa -->
@ -417,31 +423,31 @@
<!-- Serilog -->
<ItemGroup>
<PackageVersion Include="Serilog" Version="3.1.1" />
<PackageVersion Include="Serilog.AspNetCore" Version="8.0.0" />
<PackageVersion Include="Serilog" Version="4.0.2" />
<PackageVersion Include="Serilog.AspNetCore" Version="8.0.2" />
<PackageVersion Include="Serilog.Enrichers.Environment" Version="2.3.0" />
<PackageVersion Include="Serilog.Enrichers.Assembly" Version="2.0.0" />
<PackageVersion Include="Serilog.Enrichers.Process" Version="2.0.2" />
<PackageVersion Include="Serilog.Enrichers.Thread" Version="3.1.0" />
<PackageVersion Include="Serilog.Extensions.Hosting" Version="8.0.0" />
<PackageVersion Include="Serilog.Extensions.Logging" Version="8.0.0" />
<PackageVersion Include="Serilog.Settings.Configuration" Version="8.0.0" />
<PackageVersion Include="Serilog.Sinks.Async" Version="1.5.0" />
<PackageVersion Include="Serilog.Sinks.Console" Version="5.0.0" />
<PackageVersion Include="Serilog.Settings.Configuration" Version="8.0.2" />
<PackageVersion Include="Serilog.Sinks.Async" Version="2.0.0" />
<PackageVersion Include="Serilog.Sinks.Console" Version="6.0.0" />
<PackageVersion Include="Serilog.Sinks.Elasticsearch" Version="9.0.3" />
<PackageVersion Include="Serilog.Sinks.File" Version="5.0.0" />
<PackageVersion Include="Serilog.Sinks.File" Version="6.0.0" />
</ItemGroup>
<!-- Test -->
<ItemGroup>
<PackageVersion Include="coverlet.collector" Version="6.0.0" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
<PackageVersion Include="coverlet.collector" Version="6.0.2" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
<PackageVersion Include="Moq.AutoMock" Version="3.0.0" />
<PackageVersion Include="NSubstitute" Version="5.1.0" />
<PackageVersion Include="Shouldly" Version="4.2.1" />
<PackageVersion Include="xunit" Version="2.6.1" />
<PackageVersion Include="xunit.extensibility.execution" Version="2.6.1" />
<PackageVersion Include="xunit.runner.visualstudio" Version="2.5.3" />
<PackageVersion Include="xunit" Version="2.9.2" />
<PackageVersion Include="xunit.extensibility.execution" Version="2.9.2" />
<PackageVersion Include="xunit.runner.visualstudio" Version="2.8.2" />
</ItemGroup>
<!-- Fody -->
@ -453,33 +459,25 @@
<!-- Other -->
<ItemGroup>
<PackageVersion Include="aliyun-net-sdk-core" Version="1.5.10" />
<PackageVersion Include="Aliyun.OSS.SDK.NetCore" Version="2.13.0" />
<PackageVersion Include="Aliyun.OSS.SDK.NetCore" Version="2.14.1" />
<PackageVersion Include="AgileConfig.Client" Version="1.6.9" />
<PackageVersion Include="Dapr.Client" Version="1.12.0" />
<PackageVersion Include="Dapr.Actors" Version="1.12.0" />
<PackageVersion Include="Dapr.Actors.AspNetCore" Version="1.12.0" />
<PackageVersion Include="DistributedLock.Core" Version="1.0.5" />
<PackageVersion Include="DistributedLock.Redis" Version="1.0.2" />
<PackageVersion Include="Dapr.Client" Version="1.14.0" />
<PackageVersion Include="Dapr.Actors" Version="1.14.0" />
<PackageVersion Include="Dapr.Actors.AspNetCore" Version="1.14.0" />
<PackageVersion Include="DistributedLock.Core" Version="1.0.7" />
<PackageVersion Include="DistributedLock.Redis" Version="1.0.3" />
<PackageVersion Include="Hangfire.MySqlStorage" Version="2.0.3" />
<PackageVersion Include="HangFire.SqlServer" Version="1.8.6" />
<PackageVersion Include="IdentityModel" Version="6.2.0" />
<PackageVersion Include="JetBrains.Annotations" Version="2023.3.0" />
<PackageVersion Include="HangFire.SqlServer" Version="1.8.17" />
<PackageVersion Include="IdentityModel" Version="7.0.0" />
<PackageVersion Include="JetBrains.Annotations" Version="2024.2.0" />
<PackageVersion Include="Markdig" Version="0.34.0" />
<PackageVersion Include="Newtonsoft.Json" Version="13.0.3" />
<PackageVersion Include="NEST" Version="7.15.1" />
<PackageVersion Include="NEST" Version="7.17.5" />
<PackageVersion Include="NRules" Version="0.9.2" />
<PackageVersion Include="Ocelot.Provider.Polly" Version="20.0.0" />
<PackageVersion Include="OpenTelemetry.Extensions.Hosting" Version="1.8.1" />
<PackageVersion Include="OpenTelemetry.Exporter.Console" Version="1.8.1" />
<PackageVersion Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.8.1" />
<PackageVersion Include="OpenTelemetry.Exporter.Zipkin" Version="1.8.1" />
<PackageVersion Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.8.1" />
<PackageVersion Include="OpenTelemetry.Instrumentation.Http" Version="1.8.1" />
<PackageVersion Include="OpenTelemetry.Instrumentation.EntityFrameworkCore" Version="1.0.0-beta.11" />
<PackageVersion Include="OpenTelemetry.Instrumentation.Runtime" Version="1.8.1" />
<PackageVersion Include="Polly" Version="8.4.2" />
<PackageVersion Include="Quartz.Serialization.Json" Version="3.7.0" />
<PackageVersion Include="RulesEngine" Version="4.0.0" />
<PackageVersion Include="Quartz.Serialization.Json" Version="3.13.0" />
<PackageVersion Include="RulesEngine" Version="5.0.5" />
<PackageVersion Include="Senparc.Weixin.MP" Version="16.18.9" />
<PackageVersion Include="SixLabors.ImageSharp" Version="3.1.5" />
<PackageVersion Include="SixLabors.ImageSharp.Drawing" Version="2.1.4" />
@ -489,7 +487,7 @@
<PackageVersion Include="Tencent.QCloud.Cos.Sdk" Version="5.4.37" />
<PackageVersion Include="TencentCloudSDK" Version="3.0.712" />
<PackageVersion Include="Yarp.ReverseProxy" Version="2.1.0" />
<PackageVersion Include="OpenIddict.Server.DataProtection" Version="5.8.0" />
<PackageVersion Include="OpenIddict.Validation.DataProtection" Version="5.8.0" />
<PackageVersion Include="OpenIddict.Server.DataProtection" Version="6.0.0" />
<PackageVersion Include="OpenIddict.Validation.DataProtection" Version="6.0.0" />
</ItemGroup>
</Project>

2
aspnet-core/templates/micro/content/PackageName.CompanyName.ProjectName.sln

@ -57,8 +57,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "migrations", "migrations",
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".deploy", ".deploy", "{46954769-3C8A-4E05-912A-91B896A91B97}"
ProjectSection(SolutionItems) = preProject
deploy\docker-compose.override.yml = deploy\docker-compose.override.yml
deploy\deployment.yaml = deploy\deployment.yaml
deploy\docker-compose.override.yml = deploy\docker-compose.override.yml
deploy\docker-compose.yml = deploy\docker-compose.yml
EndProjectSection
EndProject

4
aspnet-core/templates/micro/content/common.props

@ -1,12 +1,12 @@
<Project>
<PropertyGroup>
<LangVersion>latest</LangVersion>
<Version>9.0.4</Version>
<Version>9.1.1</Version>
<Authors>colin</Authors>
<NoWarn>$(NoWarn);CS1591;CS0436;CS8618;NU1803</NoWarn>
<PackageProjectUrl>https://github.com/colinin/abp-next-admin</PackageProjectUrl>
<PackageOutputPath>$(SolutionDir)LocalNuget</PackageOutputPath>
<PackageVersion>9.0.4</PackageVersion>
<PackageVersion>9.1.1</PackageVersion>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<RepositoryType>git</RepositoryType>
<RepositoryUrl>https://github.com/colinin/abp-next-admin</RepositoryUrl>

2
aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/Dockerfile

@ -1,4 +1,4 @@
FROM mcr.microsoft.com/dotnet/aspnet:8.0
FROM mcr.microsoft.com/dotnet/aspnet:9.0
LABEL maintainer="colin.in@foxmail.com"
WORKDIR /app

13
aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/PackageName.CompanyName.ProjectName.HttpApi.Host.csproj

@ -15,7 +15,6 @@
<PackageReference Include="DotNetCore.CAP.PostgreSql" Condition="'$(PostgreSql)'=='true'" />
<PackageReference Include="DotNetCore.CAP.Sqlite" Condition="'$(Sqlite)'=='true'" />
<PackageReference Include="DotNetCore.CAP.RabbitMQ" />
<PackageReference Include="DotNetCore.CAP.OpenTelemetry" />
<PackageReference Include="LINGYUN.Abp.AspNetCore.HttpOverrides" />
<PackageReference Include="LINGYUN.Abp.AspNetCore.Mvc.Localization" />
<PackageReference Include="LINGYUN.Abp.AspNetCore.Mvc.Wrapper" />
@ -31,16 +30,13 @@
<PackageReference Include="LINGYUN.Abp.Serilog.Enrichers.Application" />
<PackageReference Include="LINGYUN.Abp.Serilog.Enrichers.UniqueId" />
<PackageReference Include="LINGYUN.Abp.TextTemplating.EntityFrameworkCore" />
<PackageReference Include="LINGYUN.Abp.Telemetry.SkyWalking" Condition="'$(SkyWalking)'=='true'" />
<PackageReference Include="LINGYUN.Abp.Telemetry.OpenTelemetry" Condition="'$(OpenTelemetry)'=='true'" />
<PackageReference Include="LINGYUN.Abp.Emailing.Platform" />
<PackageReference Include="LINGYUN.Abp.Sms.Platform" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" />
<PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" />
<PackageReference Include="DistributedLock.Redis" />
<PackageReference Include="OpenTelemetry.Extensions.Hosting" />
<PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" />
<PackageReference Include="OpenTelemetry.Exporter.Zipkin" />
<PackageReference Include="OpenTelemetry.Instrumentation.AspNetCore" />
<PackageReference Include="OpenTelemetry.Instrumentation.Http" />
<PackageReference Include="OpenTelemetry.Instrumentation.Runtime" />
<PackageReference Include="OpenTelemetry.Instrumentation.EntityFrameworkCore" />
<PackageReference Include="Serilog.AspNetCore" />
<PackageReference Include="Serilog.Enrichers.Environment" />
<PackageReference Include="Serilog.Enrichers.Assembly" />
@ -55,7 +51,6 @@
<PackageReference Include="Volo.Abp.AspNetCore.Authentication.JwtBearer" />
<PackageReference Include="Volo.Abp.Autofac" />
<PackageReference Include="Volo.Abp.DistributedLocking" />
<PackageReference Include="Volo.Abp.MailKit" />
<PackageReference Include="Volo.Abp.Swashbuckle" />
<PackageReference Include="Volo.Abp.Http.Client.IdentityModel.Web" />
<PackageReference Include="Volo.Abp.FeatureManagement.EntityFrameworkCore" />

92
aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/Program.cs

@ -3,66 +3,56 @@ using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using PackageName.CompanyName.ProjectName;
using Serilog;
using System;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Volo.Abp.IO;
using Volo.Abp.Modularity.PlugIns;
namespace PackageName.CompanyName.ProjectName;
public class Program
try
{
public async static Task<int> Main(string[] args)
{
try
{
Console.Title = "Web.Host";
Log.Information("Starting web host.");
Console.Title = "Web.Host";
Log.Information("Starting ProjectName api host.");
var builder = WebApplication.CreateBuilder(args);
builder.Host
.AddAppSettingsSecretsJson()
.UseAutofac()
.ConfigureAppConfiguration((context, config) =>
{
var agileConfig = context.Configuration.GetSection("AgileConfig");//IsEnabled
if (agileConfig.Exists())
{
var isAgileConfigEnabled = agileConfig["IsEnabled"];
if (isAgileConfigEnabled.IsNullOrWhiteSpace() || bool.Parse(isAgileConfigEnabled))
{
config.AddAgileConfig(new AgileConfig.Client.ConfigClient(context.Configuration));
}
}
})
.UseSerilog((context, provider, config) =>
{
config.ReadFrom.Configuration(context.Configuration);
});
await builder.AddApplicationAsync<ProjectNameHttpApiHostModule>(options =>
var builder = WebApplication.CreateBuilder(args);
builder.Host
.AddAppSettingsSecretsJson()
.UseAutofac()
.ConfigureAppConfiguration((context, config) =>
{
var agileConfig = context.Configuration.GetSection("AgileConfig");//IsEnabled
if (agileConfig.Exists())
{
ProjectNameHttpApiHostModule.ApplicationName = Environment.GetEnvironmentVariable("APPLICATION_NAME")
?? ProjectNameHttpApiHostModule.ApplicationName;
options.ApplicationName = ProjectNameHttpApiHostModule.ApplicationName;
// 搜索 Modules 目录下所有文件作为插件
// 取消显示引用所有其他项目的模块,改为通过插件的形式引用
var pluginFolder = Path.Combine(Directory.GetCurrentDirectory(), "Modules");
if (agileConfig.GetValue("IsEnabled", false))
{
config.AddAgileConfig(new AgileConfig.Client.ConfigClient(context.Configuration));
}
}
})
.UseSerilog((context, provider, config) =>
{
config.ReadFrom.Configuration(context.Configuration);
});
await builder.AddApplicationAsync<ProjectNameHttpApiHostModule>(options =>
{
ProjectNameHttpApiHostModule.ApplicationName = Environment.GetEnvironmentVariable("APPLICATION_NAME")
?? ProjectNameHttpApiHostModule.ApplicationName;
options.ApplicationName = ProjectNameHttpApiHostModule.ApplicationName;
// 搜索 Modules 目录下所有文件作为插件
// 取消显示引用所有其他项目的模块,改为通过插件的形式引用
var pluginFolder = Path.Combine(Directory.GetCurrentDirectory(), "Modules");
DirectoryHelper.CreateIfNotExists(pluginFolder);
DirectoryHelper.CreateIfNotExists(pluginFolder);
options.PlugInSources.AddFolder(pluginFolder, SearchOption.AllDirectories);
});
var app = builder.Build();
await app.InitializeApplicationAsync();
await app.RunAsync();
return 0;
}
finally
{
Log.CloseAndFlush();
}
}
options.PlugInSources.AddFolder(pluginFolder, SearchOption.AllDirectories);
});
var app = builder.Build();
await app.InitializeApplicationAsync();
await app.RunAsync();
return 0;
}
finally
{
Log.CloseAndFlush();
}

79
aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/ProjectNameHttpApiHostModule.Configure.cs

@ -1,10 +1,9 @@
using DotNetCore.CAP;
using LINGYUN.Abp.Dapr.Client.ClientProxying;
using LINGYUN.Abp.Dapr.Client.DynamicProxying;
using LINGYUN.Abp.ExceptionHandling;
using LINGYUN.Abp.ExceptionHandling.Emailing;
using LINGYUN.Abp.Localization.CultureMap;
using LINGYUN.Abp.Localization.Persistence;
using LINGYUN.Abp.LocalizationManagement;
using LINGYUN.Abp.Serilog.Enrichers.Application;
using LINGYUN.Abp.Serilog.Enrichers.UniqueId;
using LINGYUN.Abp.Wrapper;
@ -18,15 +17,10 @@ using Microsoft.AspNetCore.Routing;
using Microsoft.Extensions.Caching.StackExchangeRedis;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
using Microsoft.OpenApi.Models;
using OpenTelemetry.Metrics;
using OpenTelemetry.Resources;
using OpenTelemetry.Trace;
using PackageName.CompanyName.ProjectName.Localization;
using StackExchange.Redis;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.Encodings.Web;
using System.Text.Unicode;
@ -35,7 +29,6 @@ using Volo.Abp.AspNetCore.Mvc;
using Volo.Abp.AspNetCore.Mvc.AntiForgery;
using Volo.Abp.Auditing;
using Volo.Abp.Caching;
using Volo.Abp.EntityFrameworkCore;
using Volo.Abp.GlobalFeatures;
using Volo.Abp.Http.Client;
using Volo.Abp.Json;
@ -44,8 +37,8 @@ using Volo.Abp.Localization;
using Volo.Abp.MultiTenancy;
using Volo.Abp.Security.Claims;
using Volo.Abp.Threading;
using Volo.Abp.Timing;
using Volo.Abp.VirtualFileSystem;
using static IdentityModel.ClaimComparer;
namespace PackageName.CompanyName.ProjectName;
@ -142,54 +135,6 @@ public partial class ProjectNameHttpApiHostModule
services.AddSingleton<IDistributedLockProvider>(_ => new RedisDistributedSynchronizationProvider(redis.GetDatabase()));
}
}
private void ConfigureOpenTelemetry(IServiceCollection services, IConfiguration configuration)
{
var openTelemetryEnabled = configuration["OpenTelemetry:IsEnabled"];
if (openTelemetryEnabled.IsNullOrEmpty() || bool.Parse(openTelemetryEnabled))
{
services.AddOpenTelemetry()
.ConfigureResource(resource =>
{
resource.AddService(ApplicationName);
})
.WithTracing(tracing =>
{
tracing.AddHttpClientInstrumentation();
tracing.AddAspNetCoreInstrumentation();
tracing.AddCapInstrumentation();
tracing.AddEntityFrameworkCoreInstrumentation();
tracing.AddSource(ApplicationName);
var tracingOtlpEndpoint = configuration["OpenTelemetry:Otlp:Endpoint"];
if (!tracingOtlpEndpoint.IsNullOrWhiteSpace())
{
tracing.AddOtlpExporter(otlpOptions =>
{
otlpOptions.Endpoint = new Uri(tracingOtlpEndpoint);
});
return;
}
var zipkinEndpoint = configuration["OpenTelemetry:ZipKin:Endpoint"];
if (!zipkinEndpoint.IsNullOrWhiteSpace())
{
tracing.AddZipkinExporter(zipKinOptions =>
{
zipKinOptions.Endpoint = new Uri(zipkinEndpoint);
});
return;
}
})
.WithMetrics(metrics =>
{
metrics.AddRuntimeInstrumentation();
metrics.AddHttpClientInstrumentation();
metrics.AddAspNetCoreInstrumentation();
});
}
}
private void ConfigureExceptionHandling()
{
// 自定义需要处理的异常
@ -240,6 +185,14 @@ public partial class ProjectNameHttpApiHostModule
});
}
private void ConfigureTiming(IConfiguration configuration)
{
Configure<AbpClockOptions>(options =>
{
configuration.GetSection("Clock").Bind(options);
});
}
private void ConfigureCaching(IConfiguration configuration)
{
Configure<AbpDistributedCacheOptions>(options =>
@ -344,13 +297,6 @@ public partial class ProjectNameHttpApiHostModule
options.Languages.Add(new LanguageInfo("zh-Hans", "zh-Hans", "简体中文"));
});
Configure<AbpLocalizationPersistenceOptions>(options =>
{
// 持久化本地化资源
options.SaveStaticLocalizationsToPersistence = true;
options.AddPersistenceResource<ProjectNameResource>();
});
Configure<AbpLocalizationCultureMapOptions>(options =>
{
var zhHansCultureMapInfo = new CultureMapInfo
@ -362,6 +308,11 @@ public partial class ProjectNameHttpApiHostModule
options.CulturesMaps.Add(zhHansCultureMapInfo);
options.UiCulturesMaps.Add(zhHansCultureMapInfo);
});
Configure<AbpLocalizationManagementOptions>(options =>
{
options.SaveStaticLocalizationsToDatabase = true;
});
}
private void ConfigureSecurity(IServiceCollection services, IConfiguration configuration, bool isDevelopment = false)

21
aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/ProjectNameHttpApiHostModule.cs

@ -1,6 +1,7 @@
using LINGYUN.Abp.AspNetCore.HttpOverrides;
using LINGYUN.Abp.AspNetCore.Mvc.Wrapper;
using LINGYUN.Abp.AuditLogging.Elasticsearch;
using LINGYUN.Abp.Emailing.Platform;
using LINGYUN.Abp.EventBus.CAP;
using LINGYUN.Abp.ExceptionHandling.Emailing;
using LINGYUN.Abp.Identity.Session.AspNetCore;
@ -8,6 +9,12 @@ using LINGYUN.Abp.LocalizationManagement.EntityFrameworkCore;
using LINGYUN.Abp.Saas.EntityFrameworkCore;
using LINGYUN.Abp.Serilog.Enrichers.Application;
using LINGYUN.Abp.Serilog.Enrichers.UniqueId;
using LINGYUN.Abp.Sms.Platform;
#if SkyWalking
using LINGYUN.Abp.Telemetry.SkyWalking;
#elif OpenTelemetry
using LINGYUN.Abp.Telemetry.OpenTelemetry;
#endif
using LINGYUN.Abp.TextTemplating.EntityFrameworkCore;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
@ -24,7 +31,6 @@ using Volo.Abp.Caching.StackExchangeRedis;
using Volo.Abp.DistributedLocking;
using Volo.Abp.FeatureManagement.EntityFrameworkCore;
using Volo.Abp.Http.Client.IdentityModel.Web;
using Volo.Abp.MailKit;
using Volo.Abp.Modularity;
using Volo.Abp.PermissionManagement.EntityFrameworkCore;
using Volo.Abp.SettingManagement.EntityFrameworkCore;
@ -57,7 +63,13 @@ namespace PackageName.CompanyName.ProjectName;
typeof(AbpAspNetCoreMvcWrapperModule),
typeof(AbpAspNetCoreHttpOverridesModule),
typeof(AbpIdentitySessionAspNetCoreModule),
typeof(AbpMailKitModule),
#if SkyWalking
typeof(AbpTelemetrySkyWalkingModule),
#elif OpenTelemetry
typeof(AbpTelemetryOpenTelemetryModule),
#endif
typeof(AbpEmailingPlatformModule),
typeof(AbpSmsPlatformModule),
typeof(AbpSwashbuckleModule),
typeof(AbpAutofacModule)
)]
@ -82,6 +94,7 @@ public partial class ProjectNameHttpApiHostModule : AbpModule
ConfigureLocalization();
ConfigureExceptionHandling();
ConfigureVirtualFileSystem();
ConfigureTiming(configuration);
ConfigureCaching(configuration);
ConfigureAuditing(configuration);
ConfigureIdentity(configuration);
@ -90,7 +103,6 @@ public partial class ProjectNameHttpApiHostModule : AbpModule
ConfigureSwagger(context.Services);
ConfigureMvc(context.Services, configuration);
ConfigureCors(context.Services, configuration);
ConfigureOpenTelemetry(context.Services, configuration);
ConfigureDistributedLock(context.Services, configuration);
ConfigureSecurity(context.Services, configuration, hostingEnvironment.IsDevelopment());
}
@ -103,13 +115,14 @@ public partial class ProjectNameHttpApiHostModule : AbpModule
app.UseForwardedHeaders();
app.UseMapRequestLocalization();
app.UseCorrelationId();
app.UseStaticFiles();
app.MapAbpStaticAssets();
app.UseRouting();
app.UseCors();
app.UseAuthentication();
app.UseJwtTokenMiddleware();
app.UseMultiTenancy();
app.UseAbpSession();
app.UseUnitOfWork();
app.UseDynamicClaims();
app.UseAuthorization();
app.UseSwagger();

47
aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/appsettings.Development.json

@ -36,12 +36,53 @@
}
},
"OpenTelemetry": {
"IsEnabled": true,
"IsEnabled": false,
"Console": {
"IsEnabled": false
},
"ZipKin": {
"Endpoint": "http://127.0.0.1:9411/api/v2/spans"
"Endpoint": "",
"EndpointExample": "http://127.0.0.1:9411/api/v2/spans"
},
"Otlp": {
"Endpoint": "",
"EndpointExample": "127.0.0.1:5078"
}
},
"SkyWalking": {
"IsEnabled": false,
"HeaderVersions": [
"sw8"
],
"Logging": {
"FilePath": "logs\\skyapm-{Date}.log",
"Level": "Information"
},
"Namespace": "Framework",
"Sampling": {
"Percentage": "-1.0",
"SamplePer3Secs": "-1"
},
"Transport": {
"BatchSize": "3000",
"gRPC": {
"Authentication": "",
"ConnectTimeout": "10000",
"ReportTimeout": "600000",
"Servers": "127.0.0.1:11800",
"Timeout": "10000"
},
"Interval": "3000",
"ProtocolVersion": "v8",
"QueueSize": "30000"
}
},
"RemoteServices": {
"Platform": {
"BaseUrl": "http://127.0.0.1:30025",
"UseCurrentAccessToken": "False"
}
},
"RemoteServices": {},
"IdentityClients": {
"InternalServiceClient": {
"Authority": "http://127.0.0.1:44385",

2
aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/appsettings.json

@ -5,7 +5,7 @@
"HealthChecks": "/healthz"
},
"Clock": {
"Kind": "Local"
"Kind": "Unspecified"
},
"Forwarded": {
"ForwardedHeaders": "XForwardedFor,XForwardedProto"

2
aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore.csproj

@ -4,8 +4,6 @@
<Import Project="../../configureawait.props" />
<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<OutputType>Exe</OutputType>
<TargetFramework>net9.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>

2
aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore/ProjectNameDbContextFactory.cs

@ -12,7 +12,7 @@ public class ProjectNameDbContextFactory : IDesignTimeDbContextFactory<ProjectNa
var configuration = BuildConfiguration();
var connectionString = configuration.GetConnectionString("ProjectName");
DbContextOptionsBuilder<ProjectNameDbContext> builder = null;
DbContextOptionsBuilder<ProjectNameDbContext>? builder = null;
try
{

1
aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Application.Contracts/PackageName.CompanyName.ProjectName.Application.Contracts.csproj

@ -10,6 +10,7 @@
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<Nullable>enable</Nullable>
<RootNamespace />
</PropertyGroup>

1
aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Application/PackageName.CompanyName.ProjectName.Application.csproj

@ -10,6 +10,7 @@
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<Nullable>enable</Nullable>
<RootNamespace />
</PropertyGroup>

6
aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Dapr.Client/PackageName.CompanyName.ProjectName.Dapr.Client.csproj

@ -5,6 +5,12 @@
<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<AssemblyName>PackageName.CompanyName.ProjectName.Dapr.Client</AssemblyName>
<PackageId>PackageName.CompanyName.ProjectName.Dapr.Client</PackageId>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<Nullable>enable</Nullable>
<RootNamespace />
</PropertyGroup>

1
aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain.Shared/PackageName.CompanyName.ProjectName.Domain.Shared.csproj

@ -10,6 +10,7 @@
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<Nullable>enable</Nullable>
<RootNamespace />
</PropertyGroup>

1
aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain/PackageName.CompanyName.ProjectName.Domain.csproj

@ -10,6 +10,7 @@
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<Nullable>enable</Nullable>
<RootNamespace />
</PropertyGroup>

2
aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain/PackageName/CompanyName/ProjectName/ProjectNameDbProperties.cs

@ -4,7 +4,7 @@ public static class ProjectNameDbProperties
{
public static string DbTablePrefix { get; set; } = "ProjectName_";
public static string DbSchema { get; set; } = null;
public static string? DbSchema { get; set; } = null;
public const string ConnectionStringName = "ProjectName";

1
aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.EntityFrameworkCore/PackageName.CompanyName.ProjectName.EntityFrameworkCore.csproj

@ -10,6 +10,7 @@
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<Nullable>enable</Nullable>
<RootNamespace />
</PropertyGroup>

21
aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.EntityFrameworkCore/PackageName/CompanyName/ProjectName/EntityFrameworkCore/EfCoreProjectNameRepository.cs

@ -17,16 +17,19 @@ namespace PackageName.CompanyName.ProjectName.EntityFrameworkCore;
/// </summary>
/// <typeparam name="TEntity">实体类型</typeparam>
/// <typeparam name="TKey">实体主键类型</typeparam>
public abstract class EfCoreProjectNameRepository<TEntity, TKey> :
EfCoreDataProtectionRepository<IProjectNameDbContext, TEntity, TKey>,
/// <typeparam name="TEntityAuth">实体数据权限类型/typeparam>
public abstract class EfCoreProjectNameRepository<TEntity, TKey, TEntityAuth> :
EfCoreDataProtectionRepository<IProjectNameDbContext, TEntity, TKey, TEntityAuth>,
IProjectNameBasicRepository<TEntity, TKey>
where TEntity : class, IEntity<TKey>
where TEntity : class, IEntity<TKey>, IDataProtected
where TEntityAuth : DataAuthBase<TEntity, TKey>
{
protected EfCoreProjectNameRepository(
IDbContextProvider<IProjectNameDbContext> dbContextProvider,
IDbContextProvider<IProjectNameDbContext> dbContextProvider,
IDataAuthorizationService dataAuthorizationService,
IEntityTypeFilterBuilder entityTypeFilterBuilder)
: base(dbContextProvider, dataAuthorizationService, entityTypeFilterBuilder)
IEntityTypeFilterBuilder entityTypeFilterBuilder,
IEntityPropertyResultBuilder entityPropertyResultBuilder)
: base(dbContextProvider, dataAuthorizationService, entityTypeFilterBuilder, entityPropertyResultBuilder)
{
}
@ -34,7 +37,7 @@ public abstract class EfCoreProjectNameRepository<TEntity, TKey> :
ISpecification<TEntity> specification,
CancellationToken cancellationToken = default)
{
return await (await GetDbSetAsync())
return await (await GetQueryableAsync())
.Where(specification.ToExpression())
.CountAsync(GetCancellationToken(cancellationToken));
}
@ -46,7 +49,7 @@ public abstract class EfCoreProjectNameRepository<TEntity, TKey> :
int skipCount = 0,
CancellationToken cancellationToken = default)
{
return await (await GetDbSetAsync())
return await (await GetQueryableAsync())
.Where(specification.ToExpression())
.OrderBy(GetSortingOrDefault(sorting))
.PageBy(skipCount, maxResultCount)
@ -59,7 +62,7 @@ public abstract class EfCoreProjectNameRepository<TEntity, TKey> :
int maxResultCount = 10,
CancellationToken cancellationToken = default)
{
return await (await GetDbSetAsync())
return await (await GetQueryableAsync())
.Where(specification.ToExpression())
.OrderBy(GetSortingOrDefault(sorting))
.Take(maxResultCount)

2
aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.EntityFrameworkCore/PackageName/CompanyName/ProjectName/EntityFrameworkCore/ProjectNameDbContextModelCreatingExtensions.cs

@ -8,7 +8,7 @@ public static class ProjectNameDbContextModelCreatingExtensions
{
public static void ConfigureProjectName(
this ModelBuilder builder,
Action<ProjectNameModelBuilderConfigurationOptions> optionsAction = null)
Action<ProjectNameModelBuilderConfigurationOptions>? optionsAction = null)
{
Check.NotNull(builder, nameof(builder));

2
aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.EntityFrameworkCore/PackageName/CompanyName/ProjectName/EntityFrameworkCore/ProjectNameModelBuilderConfigurationOptions.cs

@ -7,7 +7,7 @@ public class ProjectNameModelBuilderConfigurationOptions : AbpModelBuilderConfig
{
public ProjectNameModelBuilderConfigurationOptions(
[NotNull] string tablePrefix = "",
[CanBeNull] string schema = null)
[CanBeNull] string? schema = null)
: base(
tablePrefix,
schema)

1
aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.HttpApi.Client/PackageName.CompanyName.ProjectName.HttpApi.Client.csproj

@ -10,6 +10,7 @@
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<Nullable>enable</Nullable>
<RootNamespace />
</PropertyGroup>

1
aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.HttpApi/PackageName.CompanyName.ProjectName.HttpApi.csproj

@ -10,6 +10,7 @@
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<Nullable>enable</Nullable>
<RootNamespace />
</PropertyGroup>

1
aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.SettingManagement/PackageName.CompanyName.ProjectName.SettingManagement.csproj

@ -10,6 +10,7 @@
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<Nullable>enable</Nullable>
<RootNamespace />
</PropertyGroup>

10
aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.SettingManagement/PackageName/CompanyName/ProjectName/SettingManagement/ProjectNameSettingAppService.cs

@ -1,7 +1,7 @@
using LINGYUN.Abp.SettingManagement;
using Microsoft.AspNetCore.Authorization;
using PackageName.CompanyName.ProjectName.Permissions;
using PackageName.CompanyName.ProjectName.Localization;
using PackageName.CompanyName.ProjectName.Permissions;
using System.Threading.Tasks;
using Volo.Abp.Application.Services;
using Volo.Abp.Features;
@ -54,8 +54,6 @@ public class ProjectNameSettingAppService : ApplicationService, IProjectNameSett
{
await SettingManager.SetForTenantAsync(CurrentTenant.GetId(), setting.Name, setting.Value);
}
await CurrentUnitOfWork.SaveChangesAsync();
}
}
@ -69,8 +67,6 @@ public class ProjectNameSettingAppService : ApplicationService, IProjectNameSett
{
await SettingManager.SetForCurrentUserAsync(setting.Name, setting.Value);
}
await CurrentUnitOfWork.SaveChangesAsync();
}
[Authorize(ProjectNamePermissions.ManageSettings)]
@ -83,8 +79,6 @@ public class ProjectNameSettingAppService : ApplicationService, IProjectNameSett
{
await SettingManager.SetGlobalAsync(setting.Name, setting.Value);
}
await CurrentUnitOfWork.SaveChangesAsync();
}
@ -93,7 +87,7 @@ public class ProjectNameSettingAppService : ApplicationService, IProjectNameSett
await FeatureChecker.CheckEnabledAsync(SettingManagementFeatures.Enable);
}
protected virtual async Task<SettingGroupResult> GetAllForProviderAsync(string providerName, string providerKey)
protected virtual async Task<SettingGroupResult> GetAllForProviderAsync(string providerName, string? providerKey = null)
{
var settingGroups = new SettingGroupResult();

Loading…
Cancel
Save