Browse Source

Merge pull request #1508 from colinin/micro-service-module

feat: Optimize the microservice module
pull/1509/head
yx lin 2 months ago
committed by GitHub
parent
commit
0f0cdcd266
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 2
      aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql/LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql.csproj
  2. 8
      aspnet-core/services/LY.MicroService.AuthServer.HttpApi.Host/appsettings.Development.json
  3. 142
      aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/ApplicationConfigurations/AbpApplicationConfigurationAppService.cs
  4. 4
      aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/appsettings.Development.json
  5. 1
      aspnet-core/services/LY.MicroService.LocalizationManagement.HttpApi.Host/LocalizationManagementHttpApiHostModule.Configure.cs

2
aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql/LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql.csproj

@ -22,7 +22,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" VersionOverride="10.0.3" />
<!--<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" VersionOverride="10.0.3" />-->
<!--<PackageReference Include="Elsa.Webhooks.Persistence.EntityFramework.MySql" />
<PackageReference Include="Elsa.WorkflowSettings.Persistence.EntityFramework.MySql" />
<PackageReference Include="Volo.Abp.EntityFrameworkCore.MySQL.Pomelo" />-->

8
aspnet-core/services/LY.MicroService.AuthServer.HttpApi.Host/appsettings.Development.json

@ -80,6 +80,14 @@
"InstanceName": "LINGYUN.Abp.Application"
},
"RemoteServices": {
"Default": {
"BaseUrl": "http://localhost:30000",
"UseCurrentAccessToken": false
},
"BlobManagement": {
"BaseUrl": "http://localhost:30025",
"UseCurrentAccessToken": false
},
"Platform": {
"BaseUrl": "http://localhost:30025",
"UseCurrentAccessToken": false

142
aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/ApplicationConfigurations/AbpApplicationConfigurationAppService.cs

@ -0,0 +1,142 @@
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.RequestLocalization;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations;
using Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending;
using Volo.Abp.Authorization;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Data;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Features;
using Volo.Abp.Localization;
using Volo.Abp.MultiTenancy;
using Volo.Abp.Settings;
using Volo.Abp.Timing;
using Volo.Abp.Users;
namespace LY.MicroService.BackendAdmin.ApplicationConfigurations;
[Dependency(ReplaceServices = true)]
public class AbpApplicationConfigurationAppService : Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationAppService
{
private readonly IServiceProvider _serviceProvider;
private readonly AbpApplicationConfigurationOptions _options;
private readonly ICachedObjectExtensionsDtoService _cachedObjectExtensionsDtoService;
private readonly ISettingProvider _settingProvider;
private readonly ISettingDefinitionManager _settingDefinitionManager;
public AbpApplicationConfigurationAppService(
IOptions<AbpLocalizationOptions> localizationOptions,
IOptions<AbpRequestLocalizationOptions> requestLocalizationOptions,
IOptions<AbpMultiTenancyOptions> multiTenancyOptions,
IServiceProvider serviceProvider,
IAbpAuthorizationPolicyProvider abpAuthorizationPolicyProvider,
IPermissionDefinitionManager permissionDefinitionManager,
DefaultAuthorizationPolicyProvider defaultAuthorizationPolicyProvider,
IPermissionChecker permissionChecker,
IAuthorizationService authorizationService,
ICurrentUser currentUser,
ISettingProvider settingProvider,
ISettingDefinitionManager settingDefinitionManager,
IFeatureDefinitionManager featureDefinitionManager,
ILanguageProvider languageProvider,
ITimezoneProvider timezoneProvider,
IOptions<AbpClockOptions> abpClockOptions,
ICachedObjectExtensionsDtoService cachedObjectExtensionsDtoService,
IOptions<AbpApplicationConfigurationOptions> options)
: base(
localizationOptions,
requestLocalizationOptions,
multiTenancyOptions,
serviceProvider,
abpAuthorizationPolicyProvider,
permissionDefinitionManager,
defaultAuthorizationPolicyProvider,
permissionChecker,
authorizationService,
currentUser,
settingProvider,
settingDefinitionManager,
featureDefinitionManager,
languageProvider,
timezoneProvider,
abpClockOptions,
cachedObjectExtensionsDtoService,
options)
{
_options = options.Value;
_serviceProvider = serviceProvider;
_cachedObjectExtensionsDtoService = cachedObjectExtensionsDtoService;
_settingProvider = settingProvider;
_settingDefinitionManager = settingDefinitionManager;
}
public override async Task<ApplicationConfigurationDto> GetAsync(ApplicationConfigurationRequestOptions options)
{
//TODO: Optimize & cache..?
Logger.LogDebug("Executing AbpApplicationConfigurationAppService.GetAsync()...");
var result = new ApplicationConfigurationDto
{
Auth = await GetAuthConfigAsync(),
Features = await GetFeaturesConfigAsync(),
GlobalFeatures = await GetGlobalFeaturesConfigAsync(),
Localization = await GetLocalizationConfigAsync(options),
CurrentUser = GetCurrentUser(),
Setting = await GetSettingConfigAsync(),
MultiTenancy = GetMultiTenancy(),
CurrentTenant = GetCurrentTenant(),
Timing = await GetTimingConfigAsync(),
Clock = GetClockConfig(),
ObjectExtensions = _cachedObjectExtensionsDtoService.Get(),
ExtraProperties = new ExtraPropertyDictionary()
};
if (_options.Contributors.Any())
{
using (var scope = _serviceProvider.CreateScope())
{
var context = new ApplicationConfigurationContributorContext(scope.ServiceProvider, result);
foreach (var contributor in _options.Contributors)
{
await contributor.ContributeAsync(context);
}
}
}
Logger.LogDebug("Executed AbpApplicationConfigurationAppService.GetAsync().");
return result;
}
protected async virtual Task<ApplicationSettingConfigurationDto> GetSettingConfigAsync()
{
var result = new ApplicationSettingConfigurationDto
{
Values = new Dictionary<string, string>()
};
var settingDefinitions = (await _settingDefinitionManager.GetAllAsync()).Where(x => x.IsVisibleToClients);
var settingNames = settingDefinitions.Select(x => x.Name).ToArray();
if (settingNames.Length > 0)
{
var settingValues = await _settingProvider.GetAllAsync(settingNames);
foreach (var settingValue in settingValues)
{
result.Values[settingValue.Name] = settingValue.Value;
}
}
return result;
}
}

4
aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/appsettings.Development.json

@ -68,6 +68,10 @@
"SwaggerClientId": "vue-oauth-client"
},
"RemoteServices": {
"Default": {
"BaseUrl": "http://localhost:30000",
"UseCurrentAccessToken": false
},
"Platform": {
"BaseUrl": "http://localhost:30025",
"UseCurrentAccessToken": false

1
aspnet-core/services/LY.MicroService.LocalizationManagement.HttpApi.Host/LocalizationManagementHttpApiHostModule.Configure.cs

@ -307,6 +307,7 @@ public partial class LocalizationManagementHttpApiHostModule
Configure<AbpLocalizationManagementOptions>(options =>
{
options.SaveStaticLocalizationsToDatabase = true;
options.IsDynamicLocalizationInitializerHost = true;
});
}

Loading…
Cancel
Save