14 changed files with 138 additions and 125 deletions
@ -1,50 +1,24 @@ |
|||||
using LINGYUN.Abp.WeChat.MiniProgram.Settings; |
using Microsoft.Extensions.Options; |
||||
using Microsoft.Extensions.Options; |
|
||||
using System.Collections.Generic; |
|
||||
using System.Threading.Tasks; |
using System.Threading.Tasks; |
||||
using Volo.Abp.Options; |
using Volo.Abp.DependencyInjection; |
||||
using Volo.Abp.Settings; |
|
||||
using Volo.Abp.Threading; |
|
||||
|
|
||||
namespace LINGYUN.Abp.WeChat.MiniProgram |
namespace LINGYUN.Abp.WeChat.MiniProgram |
||||
{ |
{ |
||||
public class AbpWeChatMiniProgramOptionsFactory : AbpOptionsFactory<AbpWeChatMiniProgramOptions> |
public class AbpWeChatMiniProgramOptionsFactory : ITransientDependency |
||||
{ |
{ |
||||
protected ISettingProvider SettingProvider { get; } |
protected IOptions<AbpWeChatMiniProgramOptions> Options { get; } |
||||
public AbpWeChatMiniProgramOptionsFactory( |
|
||||
ISettingProvider settingProvider, |
|
||||
IEnumerable<IConfigureOptions<AbpWeChatMiniProgramOptions>> setups, |
|
||||
IEnumerable<IPostConfigureOptions<AbpWeChatMiniProgramOptions>> postConfigures) |
|
||||
: base(setups, postConfigures) |
|
||||
{ |
|
||||
SettingProvider = settingProvider; |
|
||||
} |
|
||||
|
|
||||
public override AbpWeChatMiniProgramOptions Create(string name) |
|
||||
{ |
|
||||
var options = base.Create(name); |
|
||||
|
|
||||
OverrideOptions(options); |
public AbpWeChatMiniProgramOptionsFactory( |
||||
|
IOptions<AbpWeChatMiniProgramOptions> options) |
||||
return options; |
|
||||
} |
|
||||
|
|
||||
protected virtual void OverrideOptions(AbpWeChatMiniProgramOptions options) |
|
||||
{ |
{ |
||||
AsyncHelper.RunSync(() => OverrideOptionsAsync(options)); |
Options = options; |
||||
} |
} |
||||
|
|
||||
protected virtual async Task OverrideOptionsAsync(AbpWeChatMiniProgramOptions options) |
public virtual async Task<AbpWeChatMiniProgramOptions> CreateAsync() |
||||
{ |
{ |
||||
var appId = await SettingProvider.GetOrNullAsync(WeChatMiniProgramSettingNames.AppId); |
await Options.SetAsync(); |
||||
var appSecret = await SettingProvider.GetOrNullAsync(WeChatMiniProgramSettingNames.AppSecret); |
|
||||
var token = await SettingProvider.GetOrNullAsync(WeChatMiniProgramSettingNames.Token); |
|
||||
var aesKey = await SettingProvider.GetOrNullAsync(WeChatMiniProgramSettingNames.EncodingAESKey); |
|
||||
|
|
||||
options.AppId = appId ?? options.AppId; |
return Options.Value; |
||||
options.AppSecret = appSecret ?? options.AppSecret; |
|
||||
options.Token = token ?? options.Token; |
|
||||
options.EncodingAESKey = aesKey ?? options.EncodingAESKey; |
|
||||
} |
} |
||||
} |
} |
||||
} |
} |
||||
|
|||||
@ -0,0 +1,34 @@ |
|||||
|
using LINGYUN.Abp.WeChat.MiniProgram.Settings; |
||||
|
using Microsoft.Extensions.Options; |
||||
|
using System.Threading.Tasks; |
||||
|
using Volo.Abp.Options; |
||||
|
using Volo.Abp.Settings; |
||||
|
|
||||
|
namespace LINGYUN.Abp.WeChat.MiniProgram |
||||
|
{ |
||||
|
public class AbpWeChatMiniProgramOptionsManager : AbpDynamicOptionsManager<AbpWeChatMiniProgramOptions> |
||||
|
{ |
||||
|
protected ISettingProvider SettingProvider { get; } |
||||
|
|
||||
|
public AbpWeChatMiniProgramOptionsManager( |
||||
|
ISettingProvider settingProvider, |
||||
|
IOptionsFactory<AbpWeChatMiniProgramOptions> factory) |
||||
|
: base(factory) |
||||
|
{ |
||||
|
SettingProvider = settingProvider; |
||||
|
} |
||||
|
|
||||
|
protected override async Task OverrideOptionsAsync(string name, AbpWeChatMiniProgramOptions options) |
||||
|
{ |
||||
|
var appId = await SettingProvider.GetOrNullAsync(WeChatMiniProgramSettingNames.AppId); |
||||
|
var appSecret = await SettingProvider.GetOrNullAsync(WeChatMiniProgramSettingNames.AppSecret); |
||||
|
var token = await SettingProvider.GetOrNullAsync(WeChatMiniProgramSettingNames.Token); |
||||
|
var aesKey = await SettingProvider.GetOrNullAsync(WeChatMiniProgramSettingNames.EncodingAESKey); |
||||
|
|
||||
|
options.AppId = appId ?? options.AppId; |
||||
|
options.AppSecret = appSecret ?? options.AppSecret; |
||||
|
options.Token = token ?? options.Token; |
||||
|
options.EncodingAESKey = aesKey ?? options.EncodingAESKey; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -1,52 +1,24 @@ |
|||||
using LINGYUN.Abp.WeChat.Official.Settings; |
using Microsoft.Extensions.Options; |
||||
using Microsoft.Extensions.Options; |
|
||||
using System.Collections.Generic; |
|
||||
using System.Threading.Tasks; |
using System.Threading.Tasks; |
||||
using Volo.Abp.Options; |
using Volo.Abp.DependencyInjection; |
||||
using Volo.Abp.Settings; |
|
||||
using Volo.Abp.Threading; |
|
||||
|
|
||||
namespace LINGYUN.Abp.WeChat.Official |
namespace LINGYUN.Abp.WeChat.Official |
||||
{ |
{ |
||||
public class AbpWeChatOfficialOptionsFactory : AbpOptionsFactory<AbpWeChatOfficialOptions> |
public class AbpWeChatOfficialOptionsFactory : ITransientDependency |
||||
{ |
{ |
||||
protected ISettingProvider SettingProvider { get; } |
protected IOptions<AbpWeChatOfficialOptions> Options { get; } |
||||
public AbpWeChatOfficialOptionsFactory( |
|
||||
ISettingProvider settingProvider, |
|
||||
IEnumerable<IConfigureOptions<AbpWeChatOfficialOptions>> setups, |
|
||||
IEnumerable<IPostConfigureOptions<AbpWeChatOfficialOptions>> postConfigures) |
|
||||
: base(setups, postConfigures) |
|
||||
{ |
|
||||
SettingProvider = settingProvider; |
|
||||
} |
|
||||
|
|
||||
public override AbpWeChatOfficialOptions Create(string name) |
|
||||
{ |
|
||||
var options = base.Create(name); |
|
||||
|
|
||||
OverrideOptions(options); |
public AbpWeChatOfficialOptionsFactory( |
||||
|
IOptions<AbpWeChatOfficialOptions> options) |
||||
return options; |
|
||||
} |
|
||||
|
|
||||
protected virtual void OverrideOptions(AbpWeChatOfficialOptions options) |
|
||||
{ |
{ |
||||
AsyncHelper.RunSync(() => OverrideOptionsAsync(options)); |
Options = options; |
||||
} |
} |
||||
|
|
||||
protected virtual async Task OverrideOptionsAsync(AbpWeChatOfficialOptions options) |
public virtual async Task<AbpWeChatOfficialOptions> CreateAsync() |
||||
{ |
{ |
||||
var appId = await SettingProvider.GetOrNullAsync(WeChatOfficialSettingNames.AppId); |
await Options.SetAsync(); |
||||
var appSecret = await SettingProvider.GetOrNullAsync(WeChatOfficialSettingNames.AppSecret); |
|
||||
var url = await SettingProvider.GetOrNullAsync(WeChatOfficialSettingNames.Url); |
|
||||
var token = await SettingProvider.GetOrNullAsync(WeChatOfficialSettingNames.Token); |
|
||||
var aesKey = await SettingProvider.GetOrNullAsync(WeChatOfficialSettingNames.EncodingAESKey); |
|
||||
|
|
||||
options.AppId = appId ?? options.AppId; |
return Options.Value; |
||||
options.AppSecret = appSecret ?? options.AppSecret; |
|
||||
options.Url = url ?? options.Url; |
|
||||
options.Token = token ?? options.Token; |
|
||||
options.EncodingAESKey = aesKey ?? options.EncodingAESKey; |
|
||||
} |
} |
||||
} |
} |
||||
} |
} |
||||
|
|||||
@ -0,0 +1,35 @@ |
|||||
|
using LINGYUN.Abp.WeChat.Official.Settings; |
||||
|
using Microsoft.Extensions.Options; |
||||
|
using System.Threading.Tasks; |
||||
|
using Volo.Abp.Options; |
||||
|
using Volo.Abp.Settings; |
||||
|
|
||||
|
namespace LINGYUN.Abp.WeChat.Official |
||||
|
{ |
||||
|
public class AbpWeChatOfficialOptionsManager : AbpDynamicOptionsManager<AbpWeChatOfficialOptions> |
||||
|
{ |
||||
|
protected ISettingProvider SettingProvider { get; } |
||||
|
public AbpWeChatOfficialOptionsManager( |
||||
|
ISettingProvider settingProvider, |
||||
|
IOptionsFactory<AbpWeChatOfficialOptions> factory) |
||||
|
: base(factory) |
||||
|
{ |
||||
|
SettingProvider = settingProvider; |
||||
|
} |
||||
|
|
||||
|
protected override async Task OverrideOptionsAsync(string name, AbpWeChatOfficialOptions options) |
||||
|
{ |
||||
|
var appId = await SettingProvider.GetOrNullAsync(WeChatOfficialSettingNames.AppId); |
||||
|
var appSecret = await SettingProvider.GetOrNullAsync(WeChatOfficialSettingNames.AppSecret); |
||||
|
var url = await SettingProvider.GetOrNullAsync(WeChatOfficialSettingNames.Url); |
||||
|
var token = await SettingProvider.GetOrNullAsync(WeChatOfficialSettingNames.Token); |
||||
|
var aesKey = await SettingProvider.GetOrNullAsync(WeChatOfficialSettingNames.EncodingAESKey); |
||||
|
|
||||
|
options.AppId = appId ?? options.AppId; |
||||
|
options.AppSecret = appSecret ?? options.AppSecret; |
||||
|
options.Url = url ?? options.Url; |
||||
|
options.Token = token ?? options.Token; |
||||
|
options.EncodingAESKey = aesKey ?? options.EncodingAESKey; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue