Fixup the server code to load the new settings configs from DI

This commit is contained in:
Timothy Baldridge 2023-10-12 14:57:17 -06:00
parent 5a92aaf115
commit e6f5053a48
2 changed files with 29 additions and 10 deletions

View File

@ -7,6 +7,7 @@ using System.Text.Json.Serialization;
using System.Threading.Tasks; using System.Threading.Tasks;
using Amazon.Runtime; using Amazon.Runtime;
using Amazon.S3; using Amazon.S3;
using Amazon.Util.Internal;
using cesi.DTOs; using cesi.DTOs;
using CouchDB.Driver; using CouchDB.Driver;
using CouchDB.Driver.Options; using CouchDB.Driver.Options;
@ -24,6 +25,7 @@ using Nettle.Compiler;
using Newtonsoft.Json; using Newtonsoft.Json;
using Octokit; using Octokit;
using Wabbajack.BuildServer; using Wabbajack.BuildServer;
using Wabbajack.Configuration;
using Wabbajack.Downloaders; using Wabbajack.Downloaders;
using Wabbajack.Downloaders.VerificationCache; using Wabbajack.Downloaders.VerificationCache;
using Wabbajack.DTOs; using Wabbajack.DTOs;
@ -45,6 +47,7 @@ using Wabbajack.VFS;
using YamlDotNet.Serialization.NamingConventions; using YamlDotNet.Serialization.NamingConventions;
using Client = Wabbajack.Networking.GitHub.Client; using Client = Wabbajack.Networking.GitHub.Client;
using Metric = Wabbajack.Server.DTOs.Metric; using Metric = Wabbajack.Server.DTOs.Metric;
using SettingsManager = Wabbajack.Services.OSIntegrated.SettingsManager;
namespace Wabbajack.Server; namespace Wabbajack.Server;
@ -153,6 +156,20 @@ public class Startup
}); });
services.AddDTOSerializer(); services.AddDTOSerializer();
services.AddDTOConverters(); services.AddDTOConverters();
services.AddSingleton(s => new Wabbajack.Services.OSIntegrated.Configuration
{
EncryptedDataLocation = KnownFolders.WabbajackAppLocal.Combine("encrypted"),
ModListsDownloadLocation = KnownFolders.EntryPoint.Combine("downloaded_mod_lists"),
SavedSettingsLocation = KnownFolders.WabbajackAppLocal.Combine("saved_settings"),
LogLocation = KnownFolders.LauncherAwarePath.Combine("logs"),
ImageCacheLocation = KnownFolders.WabbajackAppLocal.Combine("image_cache")
});
services.AddSingleton<SettingsManager>();
services.AddSingleton<MainSettings>(s => Wabbajack.Services.OSIntegrated.ServiceExtensions.GetAppSettings(s, MainSettings.SettingsFileName));
services.AddResponseCompression(options => services.AddResponseCompression(options =>
{ {
options.Providers.Add<BrotliCompressionProvider>(); options.Providers.Add<BrotliCompressionProvider>();

View File

@ -98,17 +98,7 @@ public static class ServiceExtensions
service.AddSingleton(new ParallelOptions {MaxDegreeOfParallelism = Environment.ProcessorCount}); service.AddSingleton(new ParallelOptions {MaxDegreeOfParallelism = Environment.ProcessorCount});
MainSettings GetAppSettings(IServiceProvider provider, string name)
{
var settingsManager = provider.GetRequiredService<SettingsManager>();
var settings = Task.Run(() => settingsManager.Load<MainSettings>(name)).Result;
if (settings.Upgrade())
{
settingsManager.Save(MainSettings.SettingsFileName, settings).FireAndForget();
}
return settings;
}
Func<Task<(int MaxTasks, long MaxThroughput)>> GetResourceSettings(IServiceProvider provider, string name) Func<Task<(int MaxTasks, long MaxThroughput)>> GetResourceSettings(IServiceProvider provider, string name)
{ {
@ -235,6 +225,18 @@ public static class ServiceExtensions
return service; return service;
} }
public static MainSettings GetAppSettings(IServiceProvider provider, string name)
{
var settingsManager = provider.GetRequiredService<SettingsManager>();
var settings = Task.Run(() => settingsManager.Load<MainSettings>(name)).Result;
if (settings.Upgrade())
{
settingsManager.Save(MainSettings.SettingsFileName, settings).FireAndForget();
}
return settings;
}
private static void CleanAllTempData(AbsolutePath path) private static void CleanAllTempData(AbsolutePath path)
{ {
// Get directories first and cache them, this freezes the directories were looking at // Get directories first and cache them, this freezes the directories were looking at