committed by
GitHub
38 changed files with 1434 additions and 1403 deletions
@ -0,0 +1,22 @@ |
|||
using System.Collections.Generic; |
|||
using Volo.Abp.Localization; |
|||
|
|||
namespace LINGYUN.Abp.Localization.Dynamic |
|||
{ |
|||
public class AbpLocalizationDynamicOptions |
|||
{ |
|||
internal LocalizationDictionary LocalizationDictionary { get; } |
|||
|
|||
public AbpLocalizationDynamicOptions() |
|||
{ |
|||
LocalizationDictionary = new LocalizationDictionary(); |
|||
} |
|||
|
|||
internal void AddOrUpdate(string resourceName, Dictionary<string, ILocalizationDictionary> dictionares) |
|||
{ |
|||
var _dictionares = LocalizationDictionary |
|||
.GetOrAdd(resourceName, () => new Dictionary<string, ILocalizationDictionary>()); |
|||
_dictionares.AddIfNotContains(dictionares); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,45 @@ |
|||
using Microsoft.Extensions.Hosting; |
|||
using Microsoft.Extensions.Options; |
|||
using System.Threading; |
|||
using System.Threading.Tasks; |
|||
using Volo.Abp.Localization; |
|||
|
|||
namespace LINGYUN.Abp.Localization.Dynamic |
|||
{ |
|||
public class DynamicLocalizationInitializeService : IHostedService |
|||
{ |
|||
protected ILocalizationStore Store { get; } |
|||
protected AbpLocalizationOptions LocalizationOptions { get; } |
|||
protected AbpLocalizationDynamicOptions DynamicOptions { get; } |
|||
|
|||
public DynamicLocalizationInitializeService( |
|||
ILocalizationStore store, |
|||
IOptions<AbpLocalizationOptions> localizationOptions, |
|||
IOptions<AbpLocalizationDynamicOptions> dynamicOptions) |
|||
{ |
|||
Store = store; |
|||
DynamicOptions = dynamicOptions.Value; |
|||
LocalizationOptions = localizationOptions.Value; |
|||
} |
|||
|
|||
public virtual async Task StartAsync(CancellationToken cancellationToken) |
|||
{ |
|||
foreach (var resource in LocalizationOptions.Resources) |
|||
{ |
|||
foreach (var contributor in resource.Value.Contributors) |
|||
{ |
|||
if (contributor.GetType().IsAssignableFrom(typeof(DynamicLocalizationResourceContributor))) |
|||
{ |
|||
var resourceLocalizationDic = await Store.GetLocalizationDictionaryAsync(resource.Value.ResourceName); |
|||
DynamicOptions.AddOrUpdate(resource.Value.ResourceName, resourceLocalizationDic); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
public Task StopAsync(CancellationToken cancellationToken) |
|||
{ |
|||
return Task.CompletedTask; |
|||
} |
|||
} |
|||
} |
|||
@ -1,14 +0,0 @@ |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace LINGYUN.Abp.Localization.Dynamic |
|||
{ |
|||
internal interface ILocalizationDispatcher |
|||
{ |
|||
/// <summary>
|
|||
/// 发布变更事件
|
|||
/// </summary>
|
|||
/// <param name="data"></param>
|
|||
/// <returns></returns>
|
|||
Task DispatchAsync(LocalizedStringCacheResetEventData data); |
|||
} |
|||
} |
|||
@ -1,17 +0,0 @@ |
|||
using System; |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace LINGYUN.Abp.Localization.Dynamic |
|||
{ |
|||
/// <summary>
|
|||
/// 本地化资源订阅
|
|||
/// </summary>
|
|||
internal interface ILocalizationSubscriber |
|||
{ |
|||
/// <summary>
|
|||
/// 订阅变更事件
|
|||
/// </summary>
|
|||
/// <param name="func"></param>
|
|||
void Subscribe(Func<LocalizedStringCacheResetEventData, Task> func); |
|||
} |
|||
} |
|||
@ -0,0 +1,10 @@ |
|||
using System.Collections.Generic; |
|||
using Volo.Abp.Localization; |
|||
|
|||
namespace LINGYUN.Abp.Localization.Dynamic |
|||
{ |
|||
public class LocalizationDictionary : Dictionary<string, Dictionary<string, ILocalizationDictionary>> |
|||
{ |
|||
|
|||
} |
|||
} |
|||
@ -1,33 +0,0 @@ |
|||
using System; |
|||
using System.Threading.Tasks; |
|||
using Volo.Abp.DependencyInjection; |
|||
|
|||
namespace LINGYUN.Abp.Localization.Dynamic |
|||
{ |
|||
[ExposeServices( |
|||
typeof(ILocalizationSubscriber), |
|||
typeof(ILocalizationDispatcher), |
|||
typeof(LocalizationSubscriber))] |
|||
internal class LocalizationSubscriber : ILocalizationSubscriber, ILocalizationDispatcher, ISingletonDependency |
|||
{ |
|||
private Func<LocalizedStringCacheResetEventData, Task> _handler; |
|||
|
|||
public LocalizationSubscriber() |
|||
{ |
|||
_handler = (d) => |
|||
{ |
|||
return Task.CompletedTask; |
|||
}; |
|||
} |
|||
|
|||
public void Subscribe(Func<LocalizedStringCacheResetEventData, Task> func) |
|||
{ |
|||
_handler += func; |
|||
} |
|||
|
|||
public virtual async Task DispatchAsync(LocalizedStringCacheResetEventData data) |
|||
{ |
|||
await _handler(data); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,16 @@ |
|||
namespace LINGYUN.Abp.OssManagement |
|||
{ |
|||
public class PublicFileAppService : FileAppServiceBase, IPublicFileAppService |
|||
{ |
|||
public PublicFileAppService( |
|||
IFileValidater fileValidater, |
|||
IOssContainerFactory ossContainerFactory) |
|||
: base(fileValidater, ossContainerFactory) |
|||
{ |
|||
} |
|||
protected override string GetCurrentBucket() |
|||
{ |
|||
return "public"; |
|||
} |
|||
} |
|||
} |
|||
0
aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.Application.Contracts/LINGYUN/Abp/OssManagement/Features/AbpOssManagementFeatureDefinitionProvider.cs → aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.Domain.Shared/LINGYUN/Abp/OssManagement/Features/AbpOssManagementFeatureDefinitionProvider.cs
0
aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.Application.Contracts/LINGYUN/Abp/OssManagement/Features/AbpOssManagementFeatureDefinitionProvider.cs → aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.Domain.Shared/LINGYUN/Abp/OssManagement/Features/AbpOssManagementFeatureDefinitionProvider.cs
@ -1,9 +0,0 @@ |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace LINGYUN.Abp.OssManagement |
|||
{ |
|||
public interface IFileValidater |
|||
{ |
|||
Task ValidationAsync(UploadOssObjectInput input); |
|||
} |
|||
} |
|||
@ -1,20 +0,0 @@ |
|||
using Microsoft.Extensions.DependencyInjection; |
|||
using Volo.Abp.AspNetCore.Mvc; |
|||
using Volo.Abp.Modularity; |
|||
|
|||
namespace LINGYUN.Abp.OssManagement.SettingManagement |
|||
{ |
|||
[DependsOn( |
|||
typeof(AbpOssManagementApplicationContractsModule), |
|||
typeof(AbpAspNetCoreMvcModule))] |
|||
public class AbpOssManagementSettingManagementModule : AbpModule |
|||
{ |
|||
public override void PreConfigureServices(ServiceConfigurationContext context) |
|||
{ |
|||
PreConfigure<IMvcBuilder>(mvcBuilder => |
|||
{ |
|||
mvcBuilder.AddApplicationPartIfNotExists(typeof(AbpOssManagementSettingManagementModule).Assembly); |
|||
}); |
|||
} |
|||
} |
|||
} |
|||
Loading…
Reference in new issue