|
|
|
|
@ -6,79 +6,78 @@ using Volo.Abp.AspNetCore.Mvc.Client;
|
|
|
|
|
using Volo.Abp.DependencyInjection;
|
|
|
|
|
using Volo.Abp.MultiTenancy;
|
|
|
|
|
|
|
|
|
|
namespace Volo.Abp.AspNetCore.Components.MauiBlazor
|
|
|
|
|
namespace Volo.Abp.AspNetCore.Components.MauiBlazor;
|
|
|
|
|
|
|
|
|
|
public class MauiBlazorCachedApplicationConfigurationClient : ICachedApplicationConfigurationClient, ISingletonDependency
|
|
|
|
|
{
|
|
|
|
|
public class MauiBlazorCachedApplicationConfigurationClient : ICachedApplicationConfigurationClient, ISingletonDependency
|
|
|
|
|
protected AbpApplicationConfigurationClientProxy ApplicationConfigurationClientProxy { get; }
|
|
|
|
|
|
|
|
|
|
protected AbpApplicationLocalizationClientProxy ApplicationLocalizationClientProxy { get; }
|
|
|
|
|
|
|
|
|
|
protected ApplicationConfigurationCache Cache { get; }
|
|
|
|
|
|
|
|
|
|
protected ICurrentTenantAccessor CurrentTenantAccessor { get; }
|
|
|
|
|
|
|
|
|
|
public MauiBlazorCachedApplicationConfigurationClient(
|
|
|
|
|
AbpApplicationConfigurationClientProxy applicationConfigurationClientProxy,
|
|
|
|
|
ApplicationConfigurationCache cache,
|
|
|
|
|
ICurrentTenantAccessor currentTenantAccessor,
|
|
|
|
|
AuthenticationStateProvider authenticationStateProvider,
|
|
|
|
|
AbpApplicationLocalizationClientProxy applicationLocalizationClientProxy)
|
|
|
|
|
{
|
|
|
|
|
protected AbpApplicationConfigurationClientProxy ApplicationConfigurationClientProxy { get; }
|
|
|
|
|
ApplicationConfigurationClientProxy = applicationConfigurationClientProxy;
|
|
|
|
|
Cache = cache;
|
|
|
|
|
CurrentTenantAccessor = currentTenantAccessor;
|
|
|
|
|
ApplicationLocalizationClientProxy = applicationLocalizationClientProxy;
|
|
|
|
|
|
|
|
|
|
protected AbpApplicationLocalizationClientProxy ApplicationLocalizationClientProxy { get; }
|
|
|
|
|
authenticationStateProvider.AuthenticationStateChanged += async _ => { await InitializeAsync(); };
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected ApplicationConfigurationCache Cache { get; }
|
|
|
|
|
public virtual async Task InitializeAsync()
|
|
|
|
|
{
|
|
|
|
|
var configurationDto = await ApplicationConfigurationClientProxy.GetAsync(
|
|
|
|
|
new ApplicationConfigurationRequestOptions
|
|
|
|
|
{
|
|
|
|
|
IncludeLocalizationResources = false
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
protected ICurrentTenantAccessor CurrentTenantAccessor { get; }
|
|
|
|
|
var localizationDto = await ApplicationLocalizationClientProxy.GetAsync(
|
|
|
|
|
new ApplicationLocalizationRequestDto
|
|
|
|
|
{
|
|
|
|
|
CultureName = configurationDto.Localization.CurrentCulture.Name,
|
|
|
|
|
OnlyDynamics = true
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
public MauiBlazorCachedApplicationConfigurationClient(
|
|
|
|
|
AbpApplicationConfigurationClientProxy applicationConfigurationClientProxy,
|
|
|
|
|
ApplicationConfigurationCache cache,
|
|
|
|
|
ICurrentTenantAccessor currentTenantAccessor,
|
|
|
|
|
AuthenticationStateProvider authenticationStateProvider,
|
|
|
|
|
AbpApplicationLocalizationClientProxy applicationLocalizationClientProxy)
|
|
|
|
|
{
|
|
|
|
|
ApplicationConfigurationClientProxy = applicationConfigurationClientProxy;
|
|
|
|
|
Cache = cache;
|
|
|
|
|
CurrentTenantAccessor = currentTenantAccessor;
|
|
|
|
|
ApplicationLocalizationClientProxy = applicationLocalizationClientProxy;
|
|
|
|
|
configurationDto.Localization.Resources = localizationDto.Resources;
|
|
|
|
|
|
|
|
|
|
authenticationStateProvider.AuthenticationStateChanged += async _ => { await InitializeAsync(); };
|
|
|
|
|
}
|
|
|
|
|
Cache.Set(configurationDto);
|
|
|
|
|
|
|
|
|
|
public virtual async Task InitializeAsync()
|
|
|
|
|
{
|
|
|
|
|
var configurationDto = await ApplicationConfigurationClientProxy.GetAsync(
|
|
|
|
|
new ApplicationConfigurationRequestOptions
|
|
|
|
|
{
|
|
|
|
|
IncludeLocalizationResources = false
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
var localizationDto = await ApplicationLocalizationClientProxy.GetAsync(
|
|
|
|
|
new ApplicationLocalizationRequestDto
|
|
|
|
|
{
|
|
|
|
|
CultureName = configurationDto.Localization.CurrentCulture.Name,
|
|
|
|
|
OnlyDynamics = true
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
configurationDto.Localization.Resources = localizationDto.Resources;
|
|
|
|
|
|
|
|
|
|
Cache.Set(configurationDto);
|
|
|
|
|
|
|
|
|
|
CurrentTenantAccessor.Current = new BasicTenantInfo(
|
|
|
|
|
configurationDto.CurrentTenant.Id,
|
|
|
|
|
configurationDto.CurrentTenant.Name);
|
|
|
|
|
}
|
|
|
|
|
CurrentTenantAccessor.Current = new BasicTenantInfo(
|
|
|
|
|
configurationDto.CurrentTenant.Id,
|
|
|
|
|
configurationDto.CurrentTenant.Name);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public virtual Task<ApplicationConfigurationDto> GetAsync()
|
|
|
|
|
{
|
|
|
|
|
return Task.FromResult(GetConfigurationByChecking());
|
|
|
|
|
}
|
|
|
|
|
public virtual Task<ApplicationConfigurationDto> GetAsync()
|
|
|
|
|
{
|
|
|
|
|
return Task.FromResult(GetConfigurationByChecking());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public virtual ApplicationConfigurationDto Get()
|
|
|
|
|
{
|
|
|
|
|
return GetConfigurationByChecking();
|
|
|
|
|
}
|
|
|
|
|
public virtual ApplicationConfigurationDto Get()
|
|
|
|
|
{
|
|
|
|
|
return GetConfigurationByChecking();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private ApplicationConfigurationDto GetConfigurationByChecking()
|
|
|
|
|
private ApplicationConfigurationDto GetConfigurationByChecking()
|
|
|
|
|
{
|
|
|
|
|
var configuration = Cache.Get();
|
|
|
|
|
if (configuration == null)
|
|
|
|
|
{
|
|
|
|
|
var configuration = Cache.Get();
|
|
|
|
|
if (configuration == null)
|
|
|
|
|
{
|
|
|
|
|
throw new AbpException(
|
|
|
|
|
$"{nameof(MauiBlazorCachedApplicationConfigurationClient)} should be initialized before using it.");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return configuration;
|
|
|
|
|
throw new AbpException(
|
|
|
|
|
$"{nameof(MauiBlazorCachedApplicationConfigurationClient)} should be initialized before using it.");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return configuration;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|