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