Browse Source

feat: 添加 PostgreSQL 支持的迁移

pull/1048/head
feijie 1 year ago
parent
commit
115f414671
  1. 85
      aspnet-core/migrations/LY.MicroService.Applications.Single.DbMigrator/Program.cs
  2. 40
      aspnet-core/migrations/LY.MicroService.Applications.Single.DbMigrator/SingleDbMigratorModule.cs
  3. 245
      aspnet-core/migrations/LY.MicroService.Applications.Single.DbMigrator/appsettings.PostgreSql.json
  4. 26
      aspnet-core/migrations/LY.MicroService.Applications.Single.EntityFrameworkCore.PostgreSql/LY.MicroService.Applications.Single.EntityFrameworkCore.PostgreSql.csproj
  5. 33
      aspnet-core/migrations/LY.MicroService.Applications.Single.EntityFrameworkCore.PostgreSql/SingleMigrationsDbContextFactory.cs
  6. 23
      aspnet-core/migrations/LY.MicroService.Applications.Single.EntityFrameworkCore.PostgreSql/SingleMigrationsEntityFrameworkCorePostgreSqlModule.cs
  7. 1871
      aspnet-core/services/LY.MicroService.Applications.Single/MicroServiceApplicationsSingleModule.Configure.cs
  8. 801
      aspnet-core/services/LY.MicroService.Applications.Single/MicroServiceApplicationsSingleModule.cs
  9. 262
      aspnet-core/services/LY.MicroService.Applications.Single/appsettings.PostgreSql.json
  10. 80
      common.props

85
aspnet-core/migrations/LY.MicroService.Applications.Single.DbMigrator/Program.cs

@ -1,40 +1,45 @@
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Hosting;
using Serilog; using Microsoft.Extensions.Logging;
using Serilog.Events; using Serilog;
using Serilog.Events;
namespace LY.MicroService.Applications.Single.DbMigrator;
namespace LY.MicroService.Applications.Single.DbMigrator;
public class Program
{ public class Program
public async static Task Main(string[] args) {
{ public async static Task Main(string[] args)
Log.Logger = new LoggerConfiguration() {
.MinimumLevel.Information() Log.Logger = new LoggerConfiguration()
.MinimumLevel.Override("Microsoft", LogEventLevel.Warning) .MinimumLevel.Information()
.MinimumLevel.Override("Volo.Abp", LogEventLevel.Warning) .MinimumLevel.Override("Microsoft", LogEventLevel.Warning)
#if DEBUG .MinimumLevel.Override("Volo.Abp", LogEventLevel.Warning)
.MinimumLevel.Override("LY.MicroService.Applications.Single.DbMigrator", LogEventLevel.Debug) #if DEBUG
#else .MinimumLevel.Override("LY.MicroService.Applications.Single.DbMigrator", LogEventLevel.Debug)
.MinimumLevel.Override("LY.MicroService.Applications.Single.DbMigrator", LogEventLevel.Information) #else
#endif .MinimumLevel.Override("LY.MicroService.Applications.Single.DbMigrator", LogEventLevel.Information)
.Enrich.FromLogContext() #endif
.WriteTo.Console() .Enrich.FromLogContext()
.WriteTo.File("Logs/migrations.txt") .WriteTo.Console()
.CreateLogger(); .WriteTo.File("Logs/migrations.txt")
.CreateLogger();
await CreateHostBuilder(args).RunConsoleAsync(); await CreateHostBuilder(args).RunConsoleAsync();
} }
public static IHostBuilder CreateHostBuilder(string[] args) public static IHostBuilder CreateHostBuilder(string[] args)
{ {
return Host.CreateDefaultBuilder(args) return Host.CreateDefaultBuilder(args)
.AddAppSettingsSecretsJson() .AddAppSettingsSecretsJson()
.ConfigureLogging((context, logging) => logging.ClearProviders()) // .ConfigureAppConfiguration((context, builder) =>
.ConfigureServices((hostContext, services) => // {
{ // builder.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
services.AddHostedService<SingleDbMigratorHostedService>(); // .AddJsonFile($"appsettings.{context.HostingEnvironment.EnvironmentName}.json", optional: true, reloadOnChange: true);
}); // } )
} .ConfigureLogging((context, logging) => logging.ClearProviders())
} .ConfigureServices((hostContext, services) =>
{
services.AddHostedService<SingleDbMigratorHostedService>();
});
}
}

40
aspnet-core/migrations/LY.MicroService.Applications.Single.DbMigrator/SingleDbMigratorModule.cs

@ -1,16 +1,24 @@
using LINGYUN.Abp.UI.Navigation.VueVbenAdmin; using LINGYUN.Abp.UI.Navigation.VueVbenAdmin;
using LY.MicroService.Applications.Single.EntityFrameworkCore; #if POSTGRESQL
using Volo.Abp.Autofac; using LY.MicroService.Applications.Single.EntityFrameworkCore.PostgreSql;
using Volo.Abp.Modularity; #else
using LY.MicroService.Applications.Single.EntityFrameworkCore;
namespace LY.MicroService.Applications.Single.DbMigrator; #endif
using Volo.Abp.Autofac;
[DependsOn( using Volo.Abp.Modularity;
typeof(AbpUINavigationVueVbenAdminModule),
typeof(SingleMigrationsEntityFrameworkCoreModule), namespace LY.MicroService.Applications.Single.DbMigrator;
typeof(AbpAutofacModule)
)] [DependsOn(
public partial class SingleDbMigratorModule : AbpModule typeof(AbpUINavigationVueVbenAdminModule),
{ #if POSTGRESQL
typeof(SingleMigrationsEntityFrameworkCorePostgreSqlModule),
} #else
typeof(SingleMigrationsEntityFrameworkCoreModule),
#endif
typeof(AbpAutofacModule)
)]
public partial class SingleDbMigratorModule : AbpModule
{
}

245
aspnet-core/migrations/LY.MicroService.Applications.Single.DbMigrator/appsettings.PostgreSql.json

@ -0,0 +1,245 @@
{
"App": {
"ShowPii": true,
"SelfUrl": "http://127.0.0.1:30001/",
"CorsOrigins": "http://127.0.0.1:3100,http://127.0.0.1:30001",
"Urls": {
"Applications": {
"MVC": {
"RootUrl": "http://127.0.0.1:30001/",
"Urls": {
"Abp.Account.EmailConfirm": "Account/EmailConfirm",
"Abp.Account.EmailVerifyLogin": "Account/VerifyCode"
}
},
"STS": {
"RootUrl": "http://127.0.0.1:30001/"
},
"VueVbenAdmin": {
"RootUrl": "http://127.0.0.1:3100",
"Urls": {
"Abp.Account.EmailConfirm": "account/email-confirm"
}
}
}
}
},
"Auditing": {
"AllEntitiesSelector": true
},
"DistributedCache": {
"HideErrors": true,
"KeyPrefix": "LINGYUN.Abp.Application",
"GlobalCacheEntryOptions": {
"SlidingExpiration": "30:00:00",
"AbsoluteExpirationRelativeToNow": "60:00:00"
}
},
"ConnectionStrings": {
"Default": "Host=127.0.0.1;Database=Platform-V70;Username=postgres;Password=123456;SslMode=Prefer",
"AbpAuditLogging": "Host=127.0.0.1;Database=Platform-V70;Username=postgres;Password=123456;SslMode=Prefer",
"AbpOpenIddict": "Host=127.0.0.1;Database=IdentityServer-V70;Username=postgres;Password=123456;SslMode=Prefer",
"AbpIdentity": "Host=127.0.0.1;Database=IdentityServer-V70;Username=postgres;Password=123456;SslMode=Prefer",
"AbpIdentityServer": "Host=127.0.0.1;Database=IdentityServer-V70;Username=postgres;Password=123456;SslMode=Prefer",
"AbpSaas": "Host=127.0.0.1;Database=Platform-V70;Username=postgres;Password=123456;SslMode=Prefer",
"AbpTenantManagement": "Host=127.0.0.1;Database=Platform-V70;Username=postgres;Password=123456;SslMode=Prefer",
"AbpFeatureManagement": "Host=127.0.0.1;Database=Platform-V70;Username=postgres;Password=123456;SslMode=Prefer",
"AbpSettingManagement": "Host=127.0.0.1;Database=Platform-V70;Username=postgres;Password=123456;SslMode=Prefer",
"AbpPermissionManagement": "Host=127.0.0.1;Database=Platform-V70;Username=postgres;Password=123456;SslMode=Prefer",
"AbpLocalizationManagement": "Host=127.0.0.1;Database=Platform-V70;Username=postgres;Password=123456;SslMode=Prefer",
"AbpTextTemplating": "Host=127.0.0.1;Database=Platform-V70;Username=postgres;Password=123456;SslMode=Prefer",
"AppPlatform": "Host=127.0.0.1;Database=Platform-V70;Username=postgres;Password=123456;SslMode=Prefer",
"TaskManagement": "Host=127.0.0.1;Database=Platform-V70;Username=postgres;Password=123456;SslMode=Prefer",
"Workflow": "Host=127.0.0.1;Database=Workflow-V70;Username=postgres;Password=123456;SslMode=Prefer",
"Notifications": "Host=127.0.0.1;Database=Messages-V70;Username=postgres;Password=123456;SslMode=Prefer",
"MessageService": "Host=127.0.0.1;Database=Messages-V70;Username=postgres;Password=123456;SslMode=Prefer",
"Demo": "Host=127.0.0.1;Database=Platform-V70;Username=postgres;Password=123456;SslMode=Prefer"
},
"DistributedLock": {
"IsEnabled": true,
"Redis": {
"Configuration": "127.0.0.1,defaultDatabase=14"
}
},
"Elsa": {
"Features": {
"DefaultPersistence": {
"Enabled": true,
"ConnectionStringIdentifier": "Workflow",
"EntityFrameworkCore": {
"MySql": {
"Enabled": true
}
}
},
"Console": true,
"Http": true,
"Email": true,
"TemporalQuartz": true,
"JavaScriptActivities": true,
"UserTask": true,
"Conductor": true,
"Telnyx": true,
"BlobStoring": true,
"Emailing": true,
"Notification": true,
"Sms": true,
"IM": true,
"PublishWebhook": true,
"Webhooks": {
"Enabled": true,
"ConnectionStringIdentifier": "Workflow",
"EntityFrameworkCore": {
"MySql": {
"Enabled": true
}
}
},
"WorkflowSettings": {
"Enabled": true,
"ConnectionStringIdentifier": "Workflow",
"EntityFrameworkCore": {
"MySql": {
"Enabled": true
}
}
}
},
"Server": {
"BaseUrl": "http://127.0.0.1:30000"
}
},
"Quartz": {
"UsePersistentStore": false,
"Properties": {
"quartz.jobStore.dataSource": "tkm",
"quartz.jobStore.type": "Quartz.Impl.AdoJobStore.JobStoreTX, Quartz",
"quartz.jobStore.driverDelegateType": "Quartz.Impl.AdoJobStore.PostgreSQLDelegate, Quartz",
"quartz.dataSource.tkm.connectionString": "Host=127.0.0.1;Database=Platform-V70;Username=postgres;Password=123456;",
"quartz.dataSource.tkm.provider": "Npgsql",
"quartz.jobStore.clustered": "true",
"quartz.serializer.type": "json",
"quartz.dataSource.tkm.connectionStringName": "TaskManagement"
}
},
"Redis": {
"IsEnabled": true,
"Configuration": "127.0.0.1,defaultDatabase=15",
"InstanceName": "LINGYUN.Abp.Application"
},
"AuthServer": {
"UseOpenIddict": true,
"Authority": "http://127.0.0.1:30001/",
"ApiName": "lingyun-abp-application",
"SwaggerClientId": "InternalServiceClient",
"SwaggerClientSecret": "1q2w3E*"
},
"IdentityServer": {
"Clients": {
"VueAdmin": {
"ClientId": "vue-admin-client",
"RootUrl": "http://127.0.0.1:3100/"
},
"InternalService": {
"ClientId": "InternalServiceClient"
}
}
},
"OpenIddict": {
"Applications": {
"VueAdmin": {
"ClientId": "vue-admin-client",
"RootUrl": "http://127.0.0.1:3100/"
},
"InternalService": {
"ClientId": "InternalServiceClient"
}
},
"Lifetime": {
"AuthorizationCode": "00:05:00",
"AccessToken": "14:00:00",
"DeviceCode": "00:10:00",
"IdentityToken": "00:20:00",
"RefreshToken": "14:00:00",
"RefreshTokenReuseLeeway": "00:00:30",
"UserCode": "00:10:00"
}
},
"Identity": {
"Password": {
"RequiredLength": 6,
"RequiredUniqueChars": 0,
"RequireNonAlphanumeric": false,
"RequireLowercase": false,
"RequireUppercase": false,
"RequireDigit": false
},
"Lockout": {
"AllowedForNewUsers": false,
"LockoutDuration": 5,
"MaxFailedAccessAttempts": 5
},
"SignIn": {
"RequireConfirmedEmail": false,
"RequireConfirmedPhoneNumber": false
}
},
"FeatureManagement": {
"IsDynamicStoreEnabled": true
},
"SettingManagement": {
"IsDynamicStoreEnabled": true
},
"PermissionManagement": {
"IsDynamicStoreEnabled": true
},
"TextTemplating": {
"IsDynamicStoreEnabled": true
},
"WebhooksManagement": {
"IsDynamicStoreEnabled": true
},
"Logging": {
"Serilog": {
"Elasticsearch": {
"IndexFormat": "abp.dev.logging-{0:yyyy.MM.dd}"
}
}
},
"AuditLogging": {
"Elasticsearch": {
"IndexPrefix": "abp.dev.auditing"
}
},
"Elasticsearch": {
"NodeUris": "http://127.0.0.1:9200"
},
"Serilog": {
"MinimumLevel": {
"Default": "Debug",
"Override": {
"System": "Warning",
"Microsoft": "Warning",
"DotNetCore": "Debug"
}
},
"WriteTo": [
{
"Name": "Console",
"Args": {
"restrictedToMinimumLevel": "Debug",
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss} [{Level:u3}] [{SourceContext}] [{ProcessId}] [{ThreadId}] - {Message:lj}{NewLine}{Exception}"
}
},
{
"Name": "Elasticsearch",
"Args": {
"nodeUris": "http://127.0.0.1:9200",
"indexFormat": "abp.dev.logging-{0:yyyy.MM.dd}",
"autoRegisterTemplate": true,
"autoRegisterTemplateVersion": "ESv7"
}
}
]
}
}

26
aspnet-core/migrations/LY.MicroService.Applications.Single.EntityFrameworkCore.PostgreSql/LY.MicroService.Applications.Single.EntityFrameworkCore.PostgreSql.csproj

@ -0,0 +1,26 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\configureawait.props" />
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Volo.Abp.EntityFrameworkCore.PostgreSql" />
</ItemGroup>
<ItemGroup>
<Folder Include="Migrations\" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\LY.MicroService.Applications.Single.EntityFrameworkCore\LY.MicroService.Applications.Single.EntityFrameworkCore.csproj" />
</ItemGroup>
</Project>

33
aspnet-core/migrations/LY.MicroService.Applications.Single.EntityFrameworkCore.PostgreSql/SingleMigrationsDbContextFactory.cs

@ -0,0 +1,33 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Design;
using Microsoft.Extensions.Configuration;
using System.IO;
namespace LY.MicroService.Applications.Single.EntityFrameworkCore.PostgreSql;
public class SingleMigrationsDbContextFactory : IDesignTimeDbContextFactory<SingleMigrationsDbContext>
{
public SingleMigrationsDbContext CreateDbContext(string[] args)
{
var configuration = BuildConfiguration();
var connectionString = configuration.GetConnectionString("Default");
var builder = new DbContextOptionsBuilder<SingleMigrationsDbContext>()
.UseNpgsql(connectionString, b => b.MigrationsAssembly("LY.MicroService.Applications.Single.EntityFrameworkCore.PostgreSql"));
return new SingleMigrationsDbContext(builder!.Options);
}
private static IConfigurationRoot BuildConfiguration()
{
var builder = new ConfigurationBuilder()
.SetBasePath(Path.Combine(Directory.GetCurrentDirectory(), "../LY.MicroService.Applications.Single.DbMigrator/"))
.AddJsonFile("appsettings.json", optional: false)
#if POSTGRESQL
.AddJsonFile("appsettings.PostgreSql.json", optional: false)
#endif
.AddJsonFile("appsettings.Development.json", optional: true);
return builder.Build();
}
}

23
aspnet-core/migrations/LY.MicroService.Applications.Single.EntityFrameworkCore.PostgreSql/SingleMigrationsEntityFrameworkCorePostgreSqlModule.cs

@ -0,0 +1,23 @@
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.EntityFrameworkCore;
using Volo.Abp.EntityFrameworkCore.PostgreSql;
using Volo.Abp.Modularity;
namespace LY.MicroService.Applications.Single.EntityFrameworkCore.PostgreSql;
[DependsOn(
typeof(AbpEntityFrameworkCorePostgreSqlModule),
typeof(SingleMigrationsEntityFrameworkCoreModule)
)]
public class SingleMigrationsEntityFrameworkCorePostgreSqlModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
context.Services.AddAbpDbContext<SingleMigrationsDbContext>();
Configure<AbpDbContextOptions>(options =>
{
options.UseNpgsql();
});
}
}

1871
aspnet-core/services/LY.MicroService.Applications.Single/MicroServiceApplicationsSingleModule.Configure.cs

File diff suppressed because it is too large

801
aspnet-core/services/LY.MicroService.Applications.Single/MicroServiceApplicationsSingleModule.cs

@ -1,394 +1,407 @@
using LINGYUN.Abp.Account; using LINGYUN.Abp.Account;
using LINGYUN.Abp.Account.Templates; using LINGYUN.Abp.Account.Templates;
using LINGYUN.Abp.Aliyun.SettingManagement; using LINGYUN.Abp.Aliyun.SettingManagement;
using LINGYUN.Abp.AspNetCore.HttpOverrides; using LINGYUN.Abp.AspNetCore.HttpOverrides;
using LINGYUN.Abp.AspNetCore.Mvc.Idempotent.Wrapper; using LINGYUN.Abp.AspNetCore.Mvc.Idempotent.Wrapper;
using LINGYUN.Abp.AspNetCore.Mvc.Localization; using LINGYUN.Abp.AspNetCore.Mvc.Localization;
using LINGYUN.Abp.AspNetCore.Mvc.Wrapper; using LINGYUN.Abp.AspNetCore.Mvc.Wrapper;
using LINGYUN.Abp.Auditing; using LINGYUN.Abp.Auditing;
using LINGYUN.Abp.AuditLogging.EntityFrameworkCore; using LINGYUN.Abp.AuditLogging.EntityFrameworkCore;
using LINGYUN.Abp.Authentication.QQ; using LINGYUN.Abp.Authentication.QQ;
using LINGYUN.Abp.Authentication.WeChat; using LINGYUN.Abp.Authentication.WeChat;
using LINGYUN.Abp.Authorization.OrganizationUnits; using LINGYUN.Abp.Authorization.OrganizationUnits;
using LINGYUN.Abp.BackgroundTasks; using LINGYUN.Abp.BackgroundTasks;
using LINGYUN.Abp.BackgroundTasks.Activities; using LINGYUN.Abp.BackgroundTasks.Activities;
using LINGYUN.Abp.BackgroundTasks.DistributedLocking; using LINGYUN.Abp.BackgroundTasks.DistributedLocking;
using LINGYUN.Abp.BackgroundTasks.EventBus; using LINGYUN.Abp.BackgroundTasks.EventBus;
using LINGYUN.Abp.BackgroundTasks.ExceptionHandling; using LINGYUN.Abp.BackgroundTasks.ExceptionHandling;
using LINGYUN.Abp.BackgroundTasks.Jobs; using LINGYUN.Abp.BackgroundTasks.Jobs;
using LINGYUN.Abp.BackgroundTasks.Notifications; using LINGYUN.Abp.BackgroundTasks.Notifications;
using LINGYUN.Abp.BackgroundTasks.Quartz; using LINGYUN.Abp.BackgroundTasks.Quartz;
using LINGYUN.Abp.CachingManagement; using LINGYUN.Abp.CachingManagement;
using LINGYUN.Abp.CachingManagement.StackExchangeRedis; using LINGYUN.Abp.CachingManagement.StackExchangeRedis;
using LINGYUN.Abp.Dapr.Client; using LINGYUN.Abp.Dapr.Client;
using LINGYUN.Abp.Data.DbMigrator; using LINGYUN.Abp.Data.DbMigrator;
using LINGYUN.Abp.DataProtectionManagement; using LINGYUN.Abp.DataProtectionManagement;
using LINGYUN.Abp.DataProtectionManagement.EntityFrameworkCore; using LINGYUN.Abp.DataProtectionManagement.EntityFrameworkCore;
using LINGYUN.Abp.Demo; using LINGYUN.Abp.Demo;
using LINGYUN.Abp.Demo.EntityFrameworkCore; using LINGYUN.Abp.Demo.EntityFrameworkCore;
using LINGYUN.Abp.Elsa; using LINGYUN.Abp.Elsa;
using LINGYUN.Abp.Elsa.Activities; using LINGYUN.Abp.Elsa.Activities;
using LINGYUN.Abp.Elsa.EntityFrameworkCore; using LINGYUN.Abp.Elsa.EntityFrameworkCore;
using LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql; #if POSTGRESQL
using LINGYUN.Abp.ExceptionHandling; using Volo.Abp.EntityFrameworkCore.PostgreSql;
using LINGYUN.Abp.ExceptionHandling.Emailing; using LINGYUN.Abp.Elsa.EntityFrameworkCore.PostgreSql;
using LINGYUN.Abp.Exporter.MiniExcel; #else
using LINGYUN.Abp.FeatureManagement; using LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql;
using LINGYUN.Abp.FeatureManagement.HttpApi; #endif
using LINGYUN.Abp.Features.LimitValidation; using LINGYUN.Abp.ExceptionHandling;
using LINGYUN.Abp.Features.LimitValidation.Redis.Client; using LINGYUN.Abp.ExceptionHandling.Emailing;
using LINGYUN.Abp.Http.Client.Wrapper; using LINGYUN.Abp.Exporter.MiniExcel;
using LINGYUN.Abp.Identity; using LINGYUN.Abp.FeatureManagement;
using LINGYUN.Abp.Identity.AspNetCore.Session; using LINGYUN.Abp.FeatureManagement.HttpApi;
using LINGYUN.Abp.Identity.EntityFrameworkCore; using LINGYUN.Abp.Features.LimitValidation;
using LINGYUN.Abp.Identity.Notifications; using LINGYUN.Abp.Features.LimitValidation.Redis.Client;
using LINGYUN.Abp.Identity.OrganizaztionUnits; using LINGYUN.Abp.Http.Client.Wrapper;
using LINGYUN.Abp.Identity.Session.AspNetCore; using LINGYUN.Abp.Identity;
using LINGYUN.Abp.Identity.WeChat; using LINGYUN.Abp.Identity.AspNetCore.Session;
using LINGYUN.Abp.IdGenerator; using LINGYUN.Abp.Identity.EntityFrameworkCore;
using LINGYUN.Abp.IM.SignalR; using LINGYUN.Abp.Identity.Notifications;
using LINGYUN.Abp.Localization.CultureMap; using LINGYUN.Abp.Identity.OrganizaztionUnits;
using LINGYUN.Abp.Localization.Persistence; using LINGYUN.Abp.Identity.Session.AspNetCore;
using LINGYUN.Abp.LocalizationManagement; using LINGYUN.Abp.Identity.WeChat;
using LINGYUN.Abp.LocalizationManagement.EntityFrameworkCore; using LINGYUN.Abp.IdGenerator;
using LINGYUN.Abp.MessageService; using LINGYUN.Abp.IM.SignalR;
using LINGYUN.Abp.MessageService.EntityFrameworkCore; using LINGYUN.Abp.Localization.CultureMap;
using LINGYUN.Abp.MultiTenancy.Editions; using LINGYUN.Abp.Localization.Persistence;
using LINGYUN.Abp.Notifications; using LINGYUN.Abp.LocalizationManagement;
using LINGYUN.Abp.Notifications.Common; using LINGYUN.Abp.LocalizationManagement.EntityFrameworkCore;
using LINGYUN.Abp.Notifications.Emailing; using LINGYUN.Abp.MessageService;
using LINGYUN.Abp.Notifications.EntityFrameworkCore; using LINGYUN.Abp.MessageService.EntityFrameworkCore;
using LINGYUN.Abp.Notifications.SignalR; using LINGYUN.Abp.MultiTenancy.Editions;
using LINGYUN.Abp.Notifications.WeChat.MiniProgram; using LINGYUN.Abp.Notifications;
using LINGYUN.Abp.OpenApi.Authorization; using LINGYUN.Abp.Notifications.Common;
using LINGYUN.Abp.OpenIddict; using LINGYUN.Abp.Notifications.Emailing;
using LINGYUN.Abp.OpenIddict.AspNetCore; using LINGYUN.Abp.Notifications.EntityFrameworkCore;
using LINGYUN.Abp.OpenIddict.AspNetCore.Session; using LINGYUN.Abp.Notifications.SignalR;
using LINGYUN.Abp.OpenIddict.Portal; using LINGYUN.Abp.Notifications.WeChat.MiniProgram;
using LINGYUN.Abp.OpenIddict.Sms; using LINGYUN.Abp.OpenApi.Authorization;
using LINGYUN.Abp.OpenIddict.WeChat; using LINGYUN.Abp.OpenIddict;
using LINGYUN.Abp.OpenIddict.WeChat.Work; using LINGYUN.Abp.OpenIddict.AspNetCore;
using LINGYUN.Abp.OssManagement; using LINGYUN.Abp.OpenIddict.AspNetCore.Session;
using LINGYUN.Abp.OssManagement.FileSystem; using LINGYUN.Abp.OpenIddict.Portal;
using LINGYUN.Abp.OssManagement.Imaging; using LINGYUN.Abp.OpenIddict.Sms;
using LINGYUN.Abp.OssManagement.Minio; using LINGYUN.Abp.OpenIddict.WeChat;
using LINGYUN.Abp.OssManagement.SettingManagement; using LINGYUN.Abp.OpenIddict.WeChat.Work;
using LINGYUN.Abp.PermissionManagement; using LINGYUN.Abp.OssManagement;
using LINGYUN.Abp.PermissionManagement.HttpApi; using LINGYUN.Abp.OssManagement.FileSystem;
using LINGYUN.Abp.PermissionManagement.OrganizationUnits; using LINGYUN.Abp.OssManagement.Imaging;
using LINGYUN.Abp.Saas; using LINGYUN.Abp.OssManagement.Minio;
using LINGYUN.Abp.Saas.EntityFrameworkCore; using LINGYUN.Abp.OssManagement.SettingManagement;
using LINGYUN.Abp.Serilog.Enrichers.Application; using LINGYUN.Abp.PermissionManagement;
using LINGYUN.Abp.Serilog.Enrichers.UniqueId; using LINGYUN.Abp.PermissionManagement.HttpApi;
using LINGYUN.Abp.SettingManagement; using LINGYUN.Abp.PermissionManagement.OrganizationUnits;
using LINGYUN.Abp.Sms.Aliyun; using LINGYUN.Abp.Saas;
using LINGYUN.Abp.TaskManagement; using LINGYUN.Abp.Saas.EntityFrameworkCore;
using LINGYUN.Abp.TaskManagement.EntityFrameworkCore; using LINGYUN.Abp.Serilog.Enrichers.Application;
using LINGYUN.Abp.Tencent.QQ; using LINGYUN.Abp.Serilog.Enrichers.UniqueId;
using LINGYUN.Abp.Tencent.SettingManagement; using LINGYUN.Abp.SettingManagement;
using LINGYUN.Abp.TextTemplating; using LINGYUN.Abp.Sms.Aliyun;
using LINGYUN.Abp.TextTemplating.EntityFrameworkCore; using LINGYUN.Abp.TaskManagement;
using LINGYUN.Abp.UI.Navigation; using LINGYUN.Abp.TaskManagement.EntityFrameworkCore;
using LINGYUN.Abp.UI.Navigation.VueVbenAdmin; using LINGYUN.Abp.Tencent.QQ;
using LINGYUN.Abp.Webhooks; using LINGYUN.Abp.Tencent.SettingManagement;
using LINGYUN.Abp.Webhooks.EventBus; using LINGYUN.Abp.TextTemplating;
using LINGYUN.Abp.Webhooks.Identity; using LINGYUN.Abp.TextTemplating.EntityFrameworkCore;
using LINGYUN.Abp.Webhooks.Saas; using LINGYUN.Abp.UI.Navigation;
using LINGYUN.Abp.WebhooksManagement; using LINGYUN.Abp.UI.Navigation.VueVbenAdmin;
using LINGYUN.Abp.WebhooksManagement.EntityFrameworkCore; using LINGYUN.Abp.Webhooks;
using LINGYUN.Abp.WeChat.MiniProgram; using LINGYUN.Abp.Webhooks.EventBus;
using LINGYUN.Abp.WeChat.Official; using LINGYUN.Abp.Webhooks.Identity;
using LINGYUN.Abp.WeChat.Official.Handlers; using LINGYUN.Abp.Webhooks.Saas;
using LINGYUN.Abp.WeChat.SettingManagement; using LINGYUN.Abp.WebhooksManagement;
using LINGYUN.Abp.WeChat.Work; using LINGYUN.Abp.WebhooksManagement.EntityFrameworkCore;
using LINGYUN.Abp.WeChat.Work.Handlers; using LINGYUN.Abp.WeChat.MiniProgram;
using LINGYUN.Platform; using LINGYUN.Abp.WeChat.Official;
using LINGYUN.Platform.EntityFrameworkCore; using LINGYUN.Abp.WeChat.Official.Handlers;
using LINGYUN.Platform.HttpApi; using LINGYUN.Abp.WeChat.SettingManagement;
using LINGYUN.Platform.Settings.VueVbenAdmin; using LINGYUN.Abp.WeChat.Work;
using LINGYUN.Platform.Theme.VueVbenAdmin; using LINGYUN.Abp.WeChat.Work.Handlers;
using LY.MicroService.Applications.Single.EntityFrameworkCore; using LINGYUN.Platform;
using Volo.Abp; using LINGYUN.Platform.EntityFrameworkCore;
using Volo.Abp.Account.Web; using LINGYUN.Platform.HttpApi;
using Volo.Abp.AspNetCore.Authentication.JwtBearer; using LINGYUN.Platform.Settings.VueVbenAdmin;
using Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy; using LINGYUN.Platform.Theme.VueVbenAdmin;
using Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic; using LY.MicroService.Applications.Single.EntityFrameworkCore;
using Volo.Abp.AspNetCore.Serilog; using Volo.Abp;
using Volo.Abp.Autofac; using Volo.Abp.Account.Web;
using Volo.Abp.Caching.StackExchangeRedis; using Volo.Abp.AspNetCore.Authentication.JwtBearer;
using Volo.Abp.Data; using Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy;
using Volo.Abp.EntityFrameworkCore.MySQL; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic;
using Volo.Abp.EventBus; using Volo.Abp.AspNetCore.Serilog;
using Volo.Abp.FeatureManagement.EntityFrameworkCore; using Volo.Abp.Autofac;
using Volo.Abp.Imaging; using Volo.Abp.Caching.StackExchangeRedis;
using Volo.Abp.Modularity; using Volo.Abp.Data;
using Volo.Abp.OpenIddict.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore.MySQL;
using Volo.Abp.PermissionManagement.EntityFrameworkCore; using Volo.Abp.EventBus;
using Volo.Abp.PermissionManagement.Identity; using Volo.Abp.FeatureManagement.EntityFrameworkCore;
using Volo.Abp.PermissionManagement.OpenIddict; using Volo.Abp.Imaging;
using Volo.Abp.SettingManagement; using Volo.Abp.Modularity;
using Volo.Abp.SettingManagement.EntityFrameworkCore; using Volo.Abp.OpenIddict.EntityFrameworkCore;
using Volo.Abp.Threading; using Volo.Abp.PermissionManagement.EntityFrameworkCore;
using Volo.Abp.PermissionManagement.Identity;
namespace LY.MicroService.Applications.Single; using Volo.Abp.PermissionManagement.OpenIddict;
using Volo.Abp.SettingManagement;
[DependsOn( using Volo.Abp.SettingManagement.EntityFrameworkCore;
typeof(AbpAccountApplicationModule), using Volo.Abp.Threading;
typeof(AbpAccountHttpApiModule),
typeof(AbpAccountWebOpenIddictModule), namespace LY.MicroService.Applications.Single;
typeof(AbpAuditingApplicationModule),
typeof(AbpAuditingHttpApiModule), [DependsOn(
typeof(AbpAuditLoggingEntityFrameworkCoreModule), typeof(AbpAccountApplicationModule),
typeof(AbpCachingManagementStackExchangeRedisModule), typeof(AbpAccountHttpApiModule),
typeof(AbpCachingManagementApplicationModule), typeof(AbpAccountWebOpenIddictModule),
typeof(AbpCachingManagementHttpApiModule), typeof(AbpAuditingApplicationModule),
typeof(AbpIdentityAspNetCoreSessionModule), typeof(AbpAuditingHttpApiModule),
typeof(AbpIdentitySessionAspNetCoreModule), typeof(AbpAuditLoggingEntityFrameworkCoreModule),
typeof(AbpIdentityNotificationsModule), typeof(AbpCachingManagementStackExchangeRedisModule),
typeof(AbpIdentityDomainModule), typeof(AbpCachingManagementApplicationModule),
typeof(AbpIdentityApplicationModule), typeof(AbpCachingManagementHttpApiModule),
typeof(AbpIdentityHttpApiModule), typeof(AbpIdentityAspNetCoreSessionModule),
typeof(AbpIdentityEntityFrameworkCoreModule), typeof(AbpIdentitySessionAspNetCoreModule),
typeof(AbpLocalizationManagementDomainModule), typeof(AbpIdentityNotificationsModule),
typeof(AbpLocalizationManagementApplicationModule), typeof(AbpIdentityDomainModule),
typeof(AbpLocalizationManagementHttpApiModule), typeof(AbpIdentityApplicationModule),
typeof(AbpLocalizationManagementEntityFrameworkCoreModule), typeof(AbpIdentityHttpApiModule),
typeof(AbpSerilogEnrichersApplicationModule), typeof(AbpIdentityEntityFrameworkCoreModule),
typeof(AbpSerilogEnrichersUniqueIdModule), typeof(AbpLocalizationManagementDomainModule),
typeof(AbpMessageServiceDomainModule), typeof(AbpLocalizationManagementApplicationModule),
typeof(AbpMessageServiceApplicationModule), typeof(AbpLocalizationManagementHttpApiModule),
typeof(AbpMessageServiceHttpApiModule), typeof(AbpLocalizationManagementEntityFrameworkCoreModule),
typeof(AbpMessageServiceEntityFrameworkCoreModule), typeof(AbpSerilogEnrichersApplicationModule),
typeof(AbpNotificationsDomainModule), typeof(AbpSerilogEnrichersUniqueIdModule),
typeof(AbpNotificationsApplicationModule), typeof(AbpMessageServiceDomainModule),
typeof(AbpNotificationsHttpApiModule), typeof(AbpMessageServiceApplicationModule),
typeof(AbpNotificationsEntityFrameworkCoreModule), typeof(AbpMessageServiceHttpApiModule),
typeof(AbpMessageServiceEntityFrameworkCoreModule),
//typeof(AbpIdentityServerSessionModule), typeof(AbpNotificationsDomainModule),
//typeof(AbpIdentityServerApplicationModule), typeof(AbpNotificationsApplicationModule),
//typeof(AbpIdentityServerHttpApiModule), typeof(AbpNotificationsHttpApiModule),
//typeof(AbpIdentityServerEntityFrameworkCoreModule), typeof(AbpNotificationsEntityFrameworkCoreModule),
typeof(AbpOpenIddictAspNetCoreModule), //typeof(AbpIdentityServerSessionModule),
typeof(AbpOpenIddictAspNetCoreSessionModule), //typeof(AbpIdentityServerApplicationModule),
typeof(AbpOpenIddictApplicationModule), //typeof(AbpIdentityServerHttpApiModule),
typeof(AbpOpenIddictHttpApiModule), //typeof(AbpIdentityServerEntityFrameworkCoreModule),
typeof(AbpOpenIddictEntityFrameworkCoreModule),
typeof(AbpOpenIddictSmsModule), typeof(AbpOpenIddictAspNetCoreModule),
typeof(AbpOpenIddictPortalModule), typeof(AbpOpenIddictAspNetCoreSessionModule),
typeof(AbpOpenIddictWeChatModule), typeof(AbpOpenIddictApplicationModule),
typeof(AbpOpenIddictWeChatWorkModule), typeof(AbpOpenIddictHttpApiModule),
typeof(AbpOpenIddictEntityFrameworkCoreModule),
//typeof(AbpOssManagementMinioModule), // 取消注释以使用Minio typeof(AbpOpenIddictSmsModule),
typeof(AbpOssManagementFileSystemModule), typeof(AbpOpenIddictPortalModule),
typeof(AbpOssManagementImagingModule), typeof(AbpOpenIddictWeChatModule),
typeof(AbpOssManagementDomainModule), typeof(AbpOpenIddictWeChatWorkModule),
typeof(AbpOssManagementApplicationModule),
typeof(AbpOssManagementHttpApiModule), //typeof(AbpOssManagementMinioModule), // 取消注释以使用Minio
typeof(AbpOssManagementSettingManagementModule), typeof(AbpOssManagementFileSystemModule),
typeof(AbpImagingImageSharpModule), typeof(AbpOssManagementImagingModule),
typeof(AbpOssManagementDomainModule),
typeof(PlatformDomainModule), typeof(AbpOssManagementApplicationModule),
typeof(PlatformApplicationModule), typeof(AbpOssManagementHttpApiModule),
typeof(PlatformHttpApiModule), typeof(AbpOssManagementSettingManagementModule),
typeof(PlatformEntityFrameworkCoreModule), typeof(AbpImagingImageSharpModule),
typeof(PlatformSettingsVueVbenAdminModule),
typeof(PlatformThemeVueVbenAdminModule), typeof(PlatformDomainModule),
typeof(AbpUINavigationVueVbenAdminModule), typeof(PlatformApplicationModule),
typeof(PlatformHttpApiModule),
typeof(AbpSaasDomainModule), typeof(PlatformEntityFrameworkCoreModule),
typeof(AbpSaasApplicationModule), typeof(PlatformSettingsVueVbenAdminModule),
typeof(AbpSaasHttpApiModule), typeof(PlatformThemeVueVbenAdminModule),
typeof(AbpSaasEntityFrameworkCoreModule), typeof(AbpUINavigationVueVbenAdminModule),
typeof(TaskManagementDomainModule), typeof(AbpSaasDomainModule),
typeof(TaskManagementApplicationModule), typeof(AbpSaasApplicationModule),
typeof(TaskManagementHttpApiModule), typeof(AbpSaasHttpApiModule),
typeof(TaskManagementEntityFrameworkCoreModule), typeof(AbpSaasEntityFrameworkCoreModule),
typeof(AbpTextTemplatingDomainModule), typeof(TaskManagementDomainModule),
typeof(AbpTextTemplatingApplicationModule), typeof(TaskManagementApplicationModule),
typeof(AbpTextTemplatingHttpApiModule), typeof(TaskManagementHttpApiModule),
typeof(AbpTextTemplatingEntityFrameworkCoreModule), typeof(TaskManagementEntityFrameworkCoreModule),
typeof(AbpWebhooksModule), typeof(AbpTextTemplatingDomainModule),
typeof(AbpWebhooksEventBusModule), typeof(AbpTextTemplatingApplicationModule),
typeof(AbpWebhooksIdentityModule), typeof(AbpTextTemplatingHttpApiModule),
typeof(AbpWebhooksSaasModule), typeof(AbpTextTemplatingEntityFrameworkCoreModule),
typeof(WebhooksManagementDomainModule),
typeof(WebhooksManagementApplicationModule), typeof(AbpWebhooksModule),
typeof(WebhooksManagementHttpApiModule), typeof(AbpWebhooksEventBusModule),
typeof(WebhooksManagementEntityFrameworkCoreModule), typeof(AbpWebhooksIdentityModule),
typeof(AbpWebhooksSaasModule),
typeof(AbpFeatureManagementApplicationModule), typeof(WebhooksManagementDomainModule),
typeof(AbpFeatureManagementHttpApiModule), typeof(WebhooksManagementApplicationModule),
typeof(AbpFeatureManagementEntityFrameworkCoreModule), typeof(WebhooksManagementHttpApiModule),
typeof(WebhooksManagementEntityFrameworkCoreModule),
typeof(AbpSettingManagementDomainModule),
typeof(AbpSettingManagementApplicationModule), typeof(AbpFeatureManagementApplicationModule),
typeof(AbpSettingManagementHttpApiModule), typeof(AbpFeatureManagementHttpApiModule),
typeof(AbpSettingManagementEntityFrameworkCoreModule), typeof(AbpFeatureManagementEntityFrameworkCoreModule),
typeof(AbpPermissionManagementApplicationModule), typeof(AbpSettingManagementDomainModule),
typeof(AbpPermissionManagementHttpApiModule), typeof(AbpSettingManagementApplicationModule),
typeof(AbpPermissionManagementDomainIdentityModule), typeof(AbpSettingManagementHttpApiModule),
typeof(AbpPermissionManagementDomainOpenIddictModule), typeof(AbpSettingManagementEntityFrameworkCoreModule),
// typeof(AbpPermissionManagementDomainIdentityServerModule),
typeof(AbpPermissionManagementEntityFrameworkCoreModule), typeof(AbpPermissionManagementApplicationModule),
typeof(AbpPermissionManagementDomainOrganizationUnitsModule), // 组织机构权限管理 typeof(AbpPermissionManagementHttpApiModule),
typeof(AbpPermissionManagementDomainIdentityModule),
typeof(SingleMigrationsEntityFrameworkCoreModule), typeof(AbpPermissionManagementDomainOpenIddictModule),
typeof(AbpEntityFrameworkCoreMySQLModule), // typeof(AbpPermissionManagementDomainIdentityServerModule),
typeof(AbpPermissionManagementEntityFrameworkCoreModule),
typeof(AbpAliyunSmsModule), typeof(AbpPermissionManagementDomainOrganizationUnitsModule), // 组织机构权限管理
typeof(AbpAliyunSettingManagementModule),
typeof(SingleMigrationsEntityFrameworkCoreModule),
typeof(AbpAuthenticationQQModule), #if POSTGRESQL
typeof(AbpAuthenticationWeChatModule), typeof(AbpEntityFrameworkCorePostgreSqlModule),
typeof(AbpAuthorizationOrganizationUnitsModule), #else
typeof(AbpIdentityOrganizaztionUnitsModule), typeof(AbpEntityFrameworkCoreMySQLModule),
#endif
typeof(AbpBackgroundTasksModule),
typeof(AbpBackgroundTasksActivitiesModule), typeof(AbpAliyunSmsModule),
typeof(AbpBackgroundTasksDistributedLockingModule), typeof(AbpAliyunSettingManagementModule),
typeof(AbpBackgroundTasksEventBusModule),
typeof(AbpBackgroundTasksExceptionHandlingModule), typeof(AbpAuthenticationQQModule),
typeof(AbpBackgroundTasksJobsModule), typeof(AbpAuthenticationWeChatModule),
typeof(AbpBackgroundTasksNotificationsModule), typeof(AbpAuthorizationOrganizationUnitsModule),
typeof(AbpBackgroundTasksQuartzModule), typeof(AbpIdentityOrganizaztionUnitsModule),
typeof(AbpDataProtectionManagementApplicationModule), typeof(AbpBackgroundTasksModule),
typeof(AbpDataProtectionManagementHttpApiModule), typeof(AbpBackgroundTasksActivitiesModule),
typeof(AbpDataProtectionManagementEntityFrameworkCoreModule), typeof(AbpBackgroundTasksDistributedLockingModule),
typeof(AbpBackgroundTasksEventBusModule),
typeof(AbpDemoApplicationModule), typeof(AbpBackgroundTasksExceptionHandlingModule),
typeof(AbpDemoHttpApiModule), typeof(AbpBackgroundTasksJobsModule),
typeof(AbpDemoEntityFrameworkCoreModule), typeof(AbpBackgroundTasksNotificationsModule),
typeof(AbpBackgroundTasksQuartzModule),
typeof(AbpDaprClientModule),
typeof(AbpExceptionHandlingModule), typeof(AbpDataProtectionManagementApplicationModule),
typeof(AbpEmailingExceptionHandlingModule), typeof(AbpDataProtectionManagementHttpApiModule),
typeof(AbpFeaturesLimitValidationModule), typeof(AbpDataProtectionManagementEntityFrameworkCoreModule),
typeof(AbpFeaturesValidationRedisClientModule),
typeof(AbpAspNetCoreMvcLocalizationModule), typeof(AbpDemoApplicationModule),
typeof(AbpDemoHttpApiModule),
typeof(AbpLocalizationCultureMapModule), typeof(AbpDemoEntityFrameworkCoreModule),
typeof(AbpLocalizationPersistenceModule),
typeof(AbpDaprClientModule),
typeof(AbpOpenApiAuthorizationModule), typeof(AbpExceptionHandlingModule),
typeof(AbpEmailingExceptionHandlingModule),
typeof(AbpIMSignalRModule), typeof(AbpFeaturesLimitValidationModule),
typeof(AbpFeaturesValidationRedisClientModule),
typeof(AbpNotificationsModule), typeof(AbpAspNetCoreMvcLocalizationModule),
typeof(AbpNotificationsCommonModule),
typeof(AbpNotificationsSignalRModule), typeof(AbpLocalizationCultureMapModule),
typeof(AbpNotificationsEmailingModule), typeof(AbpLocalizationPersistenceModule),
typeof(AbpMultiTenancyEditionsModule),
typeof(AbpOpenApiAuthorizationModule),
typeof(AbpTencentQQModule),
typeof(AbpTencentCloudSettingManagementModule), typeof(AbpIMSignalRModule),
typeof(AbpIdentityWeChatModule), typeof(AbpNotificationsModule),
typeof(AbpNotificationsWeChatMiniProgramModule), typeof(AbpNotificationsCommonModule),
typeof(AbpWeChatMiniProgramModule), typeof(AbpNotificationsSignalRModule),
typeof(AbpWeChatOfficialModule), typeof(AbpNotificationsEmailingModule),
typeof(AbpWeChatOfficialApplicationModule), typeof(AbpMultiTenancyEditionsModule),
typeof(AbpWeChatOfficialHttpApiModule),
typeof(AbpWeChatWorkModule), typeof(AbpTencentQQModule),
typeof(AbpWeChatWorkApplicationModule), typeof(AbpTencentCloudSettingManagementModule),
typeof(AbpWeChatWorkHttpApiModule),
typeof(AbpWeChatOfficialHandlersModule), typeof(AbpIdentityWeChatModule),
typeof(AbpWeChatWorkHandlersModule), typeof(AbpNotificationsWeChatMiniProgramModule),
typeof(AbpWeChatSettingManagementModule), typeof(AbpWeChatMiniProgramModule),
typeof(AbpWeChatOfficialModule),
typeof(AbpDataDbMigratorModule), typeof(AbpWeChatOfficialApplicationModule),
typeof(AbpIdGeneratorModule), typeof(AbpWeChatOfficialHttpApiModule),
typeof(AbpUINavigationModule), typeof(AbpWeChatWorkModule),
typeof(AbpAccountTemplatesModule), typeof(AbpWeChatWorkApplicationModule),
typeof(AbpAspNetCoreAuthenticationJwtBearerModule), typeof(AbpWeChatWorkHttpApiModule),
typeof(AbpCachingStackExchangeRedisModule), typeof(AbpWeChatOfficialHandlersModule),
typeof(AbpWeChatWorkHandlersModule),
typeof(AbpElsaModule), typeof(AbpWeChatSettingManagementModule),
typeof(AbpElsaServerModule),
typeof(AbpElsaActivitiesModule), typeof(AbpDataDbMigratorModule),
typeof(AbpElsaEntityFrameworkCoreModule), typeof(AbpIdGeneratorModule),
typeof(AbpElsaEntityFrameworkCoreMySqlModule), typeof(AbpUINavigationModule),
typeof(AbpAccountTemplatesModule),
typeof(AbpExporterMiniExcelModule), typeof(AbpAspNetCoreAuthenticationJwtBearerModule),
typeof(AbpAspNetCoreMvcUiMultiTenancyModule), typeof(AbpCachingStackExchangeRedisModule),
typeof(AbpAspNetCoreSerilogModule),
typeof(AbpHttpClientWrapperModule), typeof(AbpElsaModule),
typeof(AbpAspNetCoreMvcWrapperModule), typeof(AbpElsaServerModule),
typeof(AbpAspNetCoreMvcIdempotentWrapperModule), typeof(AbpElsaActivitiesModule),
typeof(AbpAspNetCoreHttpOverridesModule), typeof(AbpElsaEntityFrameworkCoreModule),
typeof(AbpAspNetCoreMvcUiBasicThemeModule), #if POSTGRESQL
typeof(AbpEventBusModule), typeof(AbpElsaEntityFrameworkCorePostgreSqlModule),
typeof(AbpAutofacModule) #else
)] typeof(AbpElsaEntityFrameworkCoreMySqlModule),
public partial class MicroServiceApplicationsSingleModule : AbpModule #endif
{
public override void PreConfigureServices(ServiceConfigurationContext context) typeof(AbpExporterMiniExcelModule),
{ typeof(AbpAspNetCoreMvcUiMultiTenancyModule),
var configuration = context.Services.GetConfiguration(); typeof(AbpAspNetCoreSerilogModule),
var hostingEnvironment = context.Services.GetHostingEnvironment(); typeof(AbpHttpClientWrapperModule),
typeof(AbpAspNetCoreMvcWrapperModule),
PreConfigureWrapper(); typeof(AbpAspNetCoreMvcIdempotentWrapperModule),
PreConfigureFeature(); typeof(AbpAspNetCoreHttpOverridesModule),
PreConfigureIdentity(); typeof(AbpAspNetCoreMvcUiBasicThemeModule),
PreConfigureApp(configuration); typeof(AbpEventBusModule),
PreConfigureQuartz(configuration); typeof(AbpAutofacModule)
PreConfigureAuthServer(configuration); )]
PreConfigureElsa(context.Services, configuration); public partial class MicroServiceApplicationsSingleModule : AbpModule
PreConfigureCertificate(configuration, hostingEnvironment); {
} public override void PreConfigureServices(ServiceConfigurationContext context)
{
public override void ConfigureServices(ServiceConfigurationContext context) var configuration = context.Services.GetConfiguration();
{ var hostingEnvironment = context.Services.GetHostingEnvironment();
var hostingEnvironment = context.Services.GetHostingEnvironment();
var configuration = context.Services.GetConfiguration(); PreConfigureWrapper();
PreConfigureFeature();
ConfigureWeChat(); PreConfigureIdentity();
ConfigureWrapper(); PreConfigureApp(configuration);
ConfigureExporter(); PreConfigureQuartz(configuration);
ConfigureAuditing(); PreConfigureAuthServer(configuration);
ConfigureDbContext(); PreConfigureElsa(context.Services, configuration);
ConfigureIdempotent(); PreConfigureCertificate(configuration, hostingEnvironment);
ConfigureMvcUiTheme(); }
ConfigureDataSeeder();
ConfigureLocalization(); public override void ConfigureServices(ServiceConfigurationContext context)
ConfigureKestrelServer(); {
ConfigureBackgroundTasks(); var hostingEnvironment = context.Services.GetHostingEnvironment();
ConfigureExceptionHandling(); var configuration = context.Services.GetConfiguration();
ConfigureVirtualFileSystem();
ConfigureEntityDataProtected(); ConfigureWeChat();
ConfigureUrls(configuration); ConfigureWrapper();
ConfigureCaching(configuration); ConfigureExporter();
ConfigureAuditing(configuration); ConfigureAuditing();
ConfigureIdentity(configuration); ConfigureDbContext();
ConfigureAuthServer(configuration); ConfigureIdempotent();
ConfigureSwagger(context.Services); ConfigureMvcUiTheme();
ConfigureEndpoints(context.Services); ConfigureDataSeeder();
ConfigureBlobStoring(configuration); ConfigureLocalization();
ConfigureMultiTenancy(configuration); ConfigureKestrelServer();
ConfigureJsonSerializer(configuration); ConfigureBackgroundTasks();
ConfigureTextTemplating(configuration); ConfigureExceptionHandling();
ConfigureFeatureManagement(configuration); ConfigureVirtualFileSystem();
ConfigureSettingManagement(configuration); ConfigureEntityDataProtected();
ConfigureWebhooksManagement(configuration); ConfigureUrls(configuration);
ConfigurePermissionManagement(configuration); ConfigureCaching(configuration);
ConfigureNotificationManagement(configuration); ConfigureAuditing(configuration);
ConfigureCors(context.Services, configuration); ConfigureIdentity(configuration);
ConfigureDistributedLock(context.Services, configuration); ConfigureAuthServer(configuration);
ConfigureSecurity(context.Services, configuration, hostingEnvironment.IsDevelopment()); ConfigureSwagger(context.Services);
} ConfigureEndpoints(context.Services);
ConfigureBlobStoring(configuration);
public override void OnApplicationInitialization(ApplicationInitializationContext context) ConfigureMultiTenancy(configuration);
{ ConfigureJsonSerializer(configuration);
AsyncHelper.RunSync(async () => await OnApplicationInitializationAsync(context)); ConfigureTextTemplating(configuration);
} ConfigureFeatureManagement(configuration);
ConfigureSettingManagement(configuration);
public async override Task OnApplicationInitializationAsync(ApplicationInitializationContext context) ConfigureWebhooksManagement(configuration);
{ ConfigurePermissionManagement(configuration);
await context.ServiceProvider.GetRequiredService<IDataSeeder>().SeedAsync(); ; ConfigureNotificationManagement(configuration);
} ConfigureCors(context.Services, configuration);
} ConfigureDistributedLock(context.Services, configuration);
ConfigureSecurity(context.Services, configuration, hostingEnvironment.IsDevelopment());
}
public override void OnApplicationInitialization(ApplicationInitializationContext context)
{
AsyncHelper.RunSync(async () => await OnApplicationInitializationAsync(context));
}
public async override Task OnApplicationInitializationAsync(ApplicationInitializationContext context)
{
await context.ServiceProvider.GetRequiredService<IDataSeeder>().SeedAsync(); ;
}
}

262
aspnet-core/services/LY.MicroService.Applications.Single/appsettings.PostgreSql.json

@ -0,0 +1,262 @@
{
"App": {
"ShowPii": true,
"SelfUrl": "http://127.0.0.1:30001/",
"CorsOrigins": "http://127.0.0.1:3100,http://127.0.0.1:30001",
"Urls": {
"Applications": {
"MVC": {
"RootUrl": "http://127.0.0.1:30001/",
"Urls": {
"Abp.Account.EmailConfirm": "Account/EmailConfirm",
"Abp.Account.EmailVerifyLogin": "Account/VerifyCode"
}
},
"STS": {
"RootUrl": "http://127.0.0.1:30001/"
},
"VueVbenAdmin": {
"RootUrl": "http://127.0.0.1:3100",
"Urls": {
"Abp.Account.EmailConfirm": "account/email-confirm"
}
}
}
}
},
"Auditing": {
"AllEntitiesSelector": true
},
"DistributedCache": {
"HideErrors": true,
"KeyPrefix": "LINGYUN.Abp.Application",
"GlobalCacheEntryOptions": {
"SlidingExpiration": "30:00:00",
"AbsoluteExpirationRelativeToNow": "60:00:00"
}
},
"ConnectionStrings": {
"Default": "Host=127.0.0.1;Database=Platform-V70;Username=postgres;Password=123456;SslMode=Prefer",
"AbpAuditLogging": "Host=127.0.0.1;Database=Platform-V70;Username=postgres;Password=123456;SslMode=Prefer",
"AbpOpenIddict": "Host=127.0.0.1;Database=IdentityServer-V70;Username=postgres;Password=123456;SslMode=Prefer",
"AbpIdentity": "Host=127.0.0.1;Database=IdentityServer-V70;Username=postgres;Password=123456;SslMode=Prefer",
"AbpIdentityServer": "Host=127.0.0.1;Database=IdentityServer-V70;Username=postgres;Password=123456;SslMode=Prefer",
"AbpSaas": "Host=127.0.0.1;Database=Platform-V70;Username=postgres;Password=123456;SslMode=Prefer",
"AbpTenantManagement": "Host=127.0.0.1;Database=Platform-V70;Username=postgres;Password=123456;SslMode=Prefer",
"AbpFeatureManagement": "Host=127.0.0.1;Database=Platform-V70;Username=postgres;Password=123456;SslMode=Prefer",
"AbpSettingManagement": "Host=127.0.0.1;Database=Platform-V70;Username=postgres;Password=123456;SslMode=Prefer",
"AbpPermissionManagement": "Host=127.0.0.1;Database=Platform-V70;Username=postgres;Password=123456;SslMode=Prefer",
"AbpLocalizationManagement": "Host=127.0.0.1;Database=Platform-V70;Username=postgres;Password=123456;SslMode=Prefer",
"AbpTextTemplating": "Host=127.0.0.1;Database=Platform-V70;Username=postgres;Password=123456;SslMode=Prefer",
"AppPlatform": "Host=127.0.0.1;Database=Platform-V70;Username=postgres;Password=123456;SslMode=Prefer",
"TaskManagement": "Host=127.0.0.1;Database=Platform-V70;Username=postgres;Password=123456;SslMode=Prefer",
"Workflow": "Host=127.0.0.1;Database=Workflow-V70;Username=postgres;Password=123456;SslMode=Prefer",
"Notifications": "Host=127.0.0.1;Database=Messages-V70;Username=postgres;Password=123456;SslMode=Prefer",
"MessageService": "Host=127.0.0.1;Database=Messages-V70;Username=postgres;Password=123456;SslMode=Prefer",
"Demo": "Host=127.0.0.1;Database=Platform-V70;Username=postgres;Password=123456;SslMode=Prefer"
},
"DistributedLock": {
"IsEnabled": true,
"Redis": {
"Configuration": "127.0.0.1,defaultDatabase=14"
}
},
"Elsa": {
"Features": {
"DefaultPersistence": {
"Enabled": true,
"ConnectionStringIdentifier": "Workflow",
"EntityFrameworkCore": {
"PostgreSql": {
"Enabled": true
}
}
},
"Console": true,
"Http": true,
"Email": true,
"TemporalQuartz": true,
"JavaScriptActivities": true,
"UserTask": true,
"Conductor": true,
"Telnyx": true,
"BlobStoring": true,
"Emailing": true,
"Notification": true,
"Sms": true,
"IM": true,
"PublishWebhook": true,
"Webhooks": {
"Enabled": true,
"ConnectionStringIdentifier": "Workflow",
"EntityFrameworkCore": {
"PostgreSql": {
"Enabled": true
}
}
},
"WorkflowSettings": {
"Enabled": true,
"ConnectionStringIdentifier": "Workflow",
"EntityFrameworkCore": {
"PostgreSql": {
"Enabled": true
}
}
}
},
"Server": {
"BaseUrl": "http://127.0.0.1:30000"
}
},
"Quartz": {
"UsePersistentStore": true,
"Properties": {
"quartz.jobStore.dataSource": "tkm",
"quartz.jobStore.type": "Quartz.Impl.AdoJobStore.JobStoreTX, Quartz",
"quartz.jobStore.driverDelegateType": "Quartz.Impl.AdoJobStore.PostgreSQLDelegate, Quartz",
"quartz.dataSource.tkm.connectionString": "Host=127.0.0.1;Database=Platform-V70;Username=postgres;Password=123456;SslMode=Prefer",
"quartz.dataSource.tkm.provider": "Npgsql",
"quartz.jobStore.clustered": "true",
"quartz.serializer.type": "json",
"quartz.dataSource.tkm.connectionStringName": "TaskManagement"
}
},
"Redis": {
"IsEnabled": true,
"Configuration": "127.0.0.1,defaultDatabase=15",
"InstanceName": "LINGYUN.Abp.Application"
},
"Features": {
"Validation": {
"Redis": {
"Configuration": "127.0.0.1,defaultDatabase=13",
"InstanceName": "LINGYUN.Abp.Application"
}
}
},
"AuthServer": {
"UseOpenIddict": true,
"Authority": "http://127.0.0.1:30001/",
"Audience": "lingyun-abp-application",
"RequireHttpsMetadata": false,
"SwaggerClientId": "InternalServiceClient",
"SwaggerClientSecret": "1q2w3E*"
},
"IdentityServer": {
"Clients": {
"VueAdmin": {
"ClientId": "vue-admin-client",
"RootUrl": "http://127.0.0.1:3100/"
},
"InternalService": {
"ClientId": "InternalServiceClient"
}
}
},
"OpenIddict": {
"Applications": {
"VueAdmin": {
"ClientId": "vue-admin-client",
"RootUrl": "http://127.0.0.1:3100/"
},
"InternalService": {
"ClientId": "InternalServiceClient"
}
},
"Lifetime": {
"AuthorizationCode": "00:05:00",
"AccessToken": "14:00:00",
"DeviceCode": "00:10:00",
"IdentityToken": "00:20:00",
"RefreshToken": "14:00:00",
"RefreshTokenReuseLeeway": "00:00:30",
"UserCode": "00:10:00"
}
},
"Identity": {
"Password": {
"RequiredLength": 6,
"RequiredUniqueChars": 0,
"RequireNonAlphanumeric": false,
"RequireLowercase": false,
"RequireUppercase": false,
"RequireDigit": false
},
"Lockout": {
"AllowedForNewUsers": false,
"LockoutDuration": 5,
"MaxFailedAccessAttempts": 5
},
"SignIn": {
"RequireConfirmedEmail": false,
"RequireConfirmedPhoneNumber": false
}
},
"FeatureManagement": {
"IsDynamicStoreEnabled": true
},
"SettingManagement": {
"IsDynamicStoreEnabled": true
},
"PermissionManagement": {
"IsDynamicStoreEnabled": true
},
"TextTemplating": {
"IsDynamicStoreEnabled": true
},
"WebhooksManagement": {
"IsDynamicStoreEnabled": true
},
"Logging": {
"Serilog": {
"Elasticsearch": {
"IndexFormat": "abp.dev.logging-{0:yyyy.MM.dd}"
}
}
},
"AuditLogging": {
"Elasticsearch": {
"IndexPrefix": "abp.dev.auditing"
}
},
"Elasticsearch": {
"NodeUris": "http://127.0.0.1:9200"
},
"Minio": {
"WithSSL": false,
"BucketName": "blobs",
"EndPoint": "127.0.0.1:19000",
"AccessKey": "ZD43kNpimiJf9mCuomTP",
"SecretKey": "w8IqMgi4Tnz0DGzN8jZ7IJWq7OEdbUnAU0jlZxQK",
"CreateBucketIfNotExists": false
},
"Serilog": {
"MinimumLevel": {
"Default": "Information",
"Override": {
"System": "Warning",
"Microsoft": "Warning",
"DotNetCore": "Warning"
}
},
"WriteTo": [
{
"Name": "Console",
"Args": {
"restrictedToMinimumLevel": "Debug",
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss} [{Level:u3}] [{SourceContext}] [{ProcessId}] [{ThreadId}] - {Message:lj}{NewLine}{Exception}"
}
},
{
"Name": "Elasticsearch",
"Args": {
"nodeUris": "http://127.0.0.1:9200",
"indexFormat": "abp.dev.logging-{0:yyyy.MM.dd}",
"autoRegisterTemplate": true,
"autoRegisterTemplateVersion": "ESv7"
}
}
]
}
}

80
common.props

@ -1,38 +1,44 @@
<Project> <Project>
<PropertyGroup> <PropertyGroup>
<LangVersion>latest</LangVersion> <LangVersion>latest</LangVersion>
<Version>8.3.0</Version> <Version>8.3.0</Version>
<Authors>colin</Authors> <Authors>colin</Authors>
<NoWarn>$(NoWarn);CS1591;CS0436;CS8618;NU1803</NoWarn> <NoWarn>$(NoWarn);CS1591;CS0436;CS8618;NU1803</NoWarn>
<PackageProjectUrl>https://github.com/colinin/abp-next-admin</PackageProjectUrl> <PackageProjectUrl>https://github.com/colinin/abp-next-admin</PackageProjectUrl>
<PackageOutputPath>$(SolutionDir)LocalNuget</PackageOutputPath> <PackageOutputPath>$(SolutionDir)LocalNuget</PackageOutputPath>
<PackageVersion>8.3.0</PackageVersion> <PackageVersion>8.3.0</PackageVersion>
<PackageLicenseExpression>MIT</PackageLicenseExpression> <PackageLicenseExpression>MIT</PackageLicenseExpression>
<RepositoryType>git</RepositoryType> <RepositoryType>git</RepositoryType>
<RepositoryUrl>https://github.com/colinin/abp-next-admin</RepositoryUrl> <RepositoryUrl>https://github.com/colinin/abp-next-admin</RepositoryUrl>
<GeneratePackageOnBuild Condition="$(AssemblyName.StartsWith('LINGYUN'))">true</GeneratePackageOnBuild> <GeneratePackageOnBuild Condition="$(AssemblyName.StartsWith('LINGYUN'))">true</GeneratePackageOnBuild>
</PropertyGroup> <Configurations>Debug;Release;PostgreSQL</Configurations>
</PropertyGroup>
<ItemGroup>
<Compile Remove="LocalNuget\**" /> <ItemGroup>
<EmbeddedResource Remove="LocalNuget\**" /> <Compile Remove="LocalNuget\**" />
<None Remove="LocalNuget\**" /> <EmbeddedResource Remove="LocalNuget\**" />
</ItemGroup> <None Remove="LocalNuget\**" />
</ItemGroup>
<ItemGroup>
<Compile Remove="Logs\**" /> <ItemGroup>
<EmbeddedResource Remove="Logs\**" /> <Compile Remove="Logs\**" />
<None Remove="Logs\**" /> <EmbeddedResource Remove="Logs\**" />
</ItemGroup> <None Remove="Logs\**" />
</ItemGroup>
<ItemGroup>
<Compile Remove="Modules\**" /> <ItemGroup>
<EmbeddedResource Remove="Modules\**" /> <Compile Remove="Modules\**" />
<None Remove="Modules\**" /> <EmbeddedResource Remove="Modules\**" />
</ItemGroup> <None Remove="Modules\**" />
</ItemGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<OutputPath>$(SolutionDir)LocalNuget</OutputPath> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
</PropertyGroup> <OutputPath>$(SolutionDir)LocalNuget</OutputPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='PostgreSQL|AnyCPU'">
<DefineConstants>POSTGRESQL</DefineConstants>
<OutputPath>$(SolutionDir)LocalNuget</OutputPath>
</PropertyGroup>
</Project> </Project>
Loading…
Cancel
Save