Refactoring
This commit is contained in:
@ -4,44 +4,13 @@ using System.Linq;
|
||||
using System.Reflection;
|
||||
using Microsoft.AspNetCore.Builder;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Oqtane.Infrastructure;
|
||||
using Oqtane.Infrastructure.Localization;
|
||||
|
||||
namespace Oqtane.Extensions
|
||||
{
|
||||
public static class ApplicationBuilderExtensions
|
||||
{
|
||||
private static readonly string DefaultCultureKey = "Localization:DefaultCulture";
|
||||
private static readonly string SupportedCulturesKey = "Localization:SupportedCultures";
|
||||
|
||||
public static IApplicationBuilder UseOqtaneLocalization(this IApplicationBuilder app)
|
||||
{
|
||||
var configuration = app.ApplicationServices.GetService<IConfiguration>();
|
||||
var defaultCulture = configuration.GetSection(DefaultCultureKey).Value;
|
||||
var supportedCultures = configuration.GetSection(SupportedCulturesKey).Get<string[]>();
|
||||
if (defaultCulture == CultureInfo.InstalledUICulture.Name)
|
||||
{
|
||||
LocalizationSettings.DefaultCulture = defaultCulture;
|
||||
}
|
||||
|
||||
if (supportedCultures.Length > 0)
|
||||
{
|
||||
LocalizationSettings.SupportedCultures.AddRange(supportedCultures);
|
||||
}
|
||||
|
||||
CultureInfo.CurrentUICulture = new CultureInfo(defaultCulture);
|
||||
|
||||
app.UseRequestLocalization(options => {
|
||||
options.SetDefaultCulture(defaultCulture)
|
||||
.AddSupportedUICultures(supportedCultures)
|
||||
.AddSupportedUICultures(supportedCultures);
|
||||
});
|
||||
|
||||
return app;
|
||||
}
|
||||
|
||||
public static IApplicationBuilder ConfigureOqtaneAssemblies(this IApplicationBuilder app, IWebHostEnvironment env)
|
||||
{
|
||||
var startUps = AppDomain.CurrentDomain
|
||||
@ -55,5 +24,22 @@ namespace Oqtane.Extensions
|
||||
|
||||
return app;
|
||||
}
|
||||
|
||||
public static IApplicationBuilder UseOqtaneLocalization(this IApplicationBuilder app)
|
||||
{
|
||||
var localizationManager = app.ApplicationServices.GetService<ILocalizationManager>();
|
||||
var defaultCulture = localizationManager.GetDefaultCulture();
|
||||
var supportedCultures = localizationManager.GetSupportedCultures();
|
||||
|
||||
CultureInfo.CurrentUICulture = new CultureInfo(defaultCulture);
|
||||
|
||||
app.UseRequestLocalization(options => {
|
||||
options.SetDefaultCulture(defaultCulture)
|
||||
.AddSupportedUICultures(supportedCultures)
|
||||
.AddSupportedUICultures(supportedCultures);
|
||||
});
|
||||
|
||||
return app;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -5,7 +5,6 @@ using System.Reflection;
|
||||
using System.Runtime.Loader;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
using Oqtane.Infrastructure;
|
||||
using Oqtane.Infrastructure.Localization;
|
||||
using Oqtane.Modules;
|
||||
using Oqtane.Services;
|
||||
using Oqtane.Shared;
|
||||
@ -134,35 +133,39 @@ namespace Microsoft.Extensions.DependencyInjection
|
||||
|
||||
AssemblyLoadContext.Default.Resolving += ResolveDependencies;
|
||||
|
||||
foreach (var culture in LocalizationSettings.SupportedCultures)
|
||||
using (var serviceScope = ServiceActivator.GetScope())
|
||||
{
|
||||
if (culture == Constants.DefaultCulture)
|
||||
var localizationManager = serviceScope.ServiceProvider.GetService<ILocalizationManager>();
|
||||
foreach (var culture in localizationManager.GetSupportedCultures())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var assembliesFolder = new DirectoryInfo(Path.Combine(assemblyPath, culture));
|
||||
foreach (var assemblyFile in assembliesFolder.EnumerateFiles(Constants.StalliteAssemblyExtension))
|
||||
{
|
||||
AssemblyName assemblyName;
|
||||
try
|
||||
if (culture == Constants.DefaultCulture)
|
||||
{
|
||||
assemblyName = AssemblyName.GetAssemblyName(assemblyFile.FullName);
|
||||
}
|
||||
catch
|
||||
{
|
||||
Console.WriteLine($"Not Satellite Assembly : {assemblyFile.Name}");
|
||||
continue;
|
||||
}
|
||||
|
||||
try
|
||||
var assembliesFolder = new DirectoryInfo(Path.Combine(assemblyPath, culture));
|
||||
foreach (var assemblyFile in assembliesFolder.EnumerateFiles(Constants.StalliteAssemblyExtension))
|
||||
{
|
||||
Assembly assembly = AssemblyLoadContext.Default.LoadFromStream(new MemoryStream(File.ReadAllBytes(assemblyFile.FullName)));
|
||||
Console.WriteLine($"Loaded : {assemblyName}");
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine($"Failed : {assemblyName}\n{e}");
|
||||
AssemblyName assemblyName;
|
||||
try
|
||||
{
|
||||
assemblyName = AssemblyName.GetAssemblyName(assemblyFile.FullName);
|
||||
}
|
||||
catch
|
||||
{
|
||||
Console.WriteLine($"Not Satellite Assembly : {assemblyFile.Name}");
|
||||
continue;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
Assembly assembly = AssemblyLoadContext.Default.LoadFromStream(new MemoryStream(File.ReadAllBytes(assemblyFile.FullName)));
|
||||
Console.WriteLine($"Loaded : {assemblyName}");
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine($"Failed : {assemblyName}\n{e}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user