Skip to content

Commit 398aded

Browse files
committed
Merge branch 'main' into origin_bannerlord
2 parents 0eca0ee + 363b68a commit 398aded

File tree

6 files changed

+46
-5
lines changed

6 files changed

+46
-5
lines changed

src/ArchiveManagement/NexusMods.FileExtractor/IFileExtractorSettings.cs

+6
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,12 @@ public class FileExtractorSettings : IFileExtractorSettings
2424
{
2525
// Note: We can't serialize AbsolutePath because it contains more fields than expected. Just hope user sets correct paths and pray for the best.
2626
private readonly IFileSystem _fileSystem;
27+
28+
29+
/// <summary>
30+
/// Default constructor for serialization.
31+
/// </summary>
32+
public FileExtractorSettings() : this(FileSystem.Shared) {}
2733

2834
/// <summary>
2935
/// Creates a default new instance of <see cref="FileExtractorSettings"/>.

src/NexusMods.App/AppConfig.cs

+5
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,11 @@ public class LoggingSettings : ILoggingSettings
9090

9191
/// <inheritdoc/>
9292
public int MaxArchivedFiles { get; set; }
93+
94+
/// <summary>
95+
/// Default constructor for serialization.
96+
/// </summary>
97+
public LoggingSettings() : this(FileSystem.Shared) {}
9398

9499
/// <summary>
95100
/// Creates the default logger with logs stored in the entry directory.

src/NexusMods.App/Program.cs

+4-5
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public static async Task<int> Main(string[] args)
5353
return 0;
5454
}
5555

56-
private static IHost BuildHost()
56+
public static IHost BuildHost()
5757
{
5858
// I'm not 100% sure how to wire this up to cleanly pass settings
5959
// to ConfigureLogging; since the DI container isn't built until the host is.
@@ -67,10 +67,9 @@ private static IHost BuildHost()
6767
var configJson = File.ReadAllText(appFolder.CombineUnchecked("AppConfig.json").GetFullPath());
6868

6969
// Note: suppressed because invalid config will throw.
70-
// TODO: Fix config serialization and re-add this
71-
// config = JsonSerializer.Deserialize<AppConfig>(configJson)!;
72-
// config.Sanitize();
73-
// services.AddSingleton(config);
70+
config = JsonSerializer.Deserialize<AppConfig>(configJson)!;
71+
config.Sanitize();
72+
services.AddSingleton(config);
7473
services.AddApp(new AppConfig()).Validate();
7574
})
7675
.ConfigureLogging((_, builder) => AddLogging(builder, config.LoggingSettings))

src/NexusMods.DataModel/IDataModelSettings.cs

+5
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,11 @@ public class DataModelSettings : IDataModelSettings
7575

7676
/// <inheritdoc />
7777
public long MaxHashingThroughputBytesPerSecond { get; set; } = 0;
78+
79+
/// <summary>
80+
/// Default constructor for serialization.
81+
/// </summary>
82+
public DataModelSettings() : this(FileSystem.Shared) { }
7883

7984
/// <summary>
8085
/// Creates the default datamodel settings with a given base directory.

src/NexusMods.Paths/ConfigurationPath.cs

+12
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,18 @@ public class ConfigurationPathJsonConverter : JsonConverter<ConfigurationPath>
8181
{
8282
private readonly IFileSystem _fileSystem;
8383

84+
/// <summary>
85+
/// Default constructor.
86+
/// </summary>
87+
public ConfigurationPathJsonConverter()
88+
{
89+
_fileSystem = FileSystem.Shared;
90+
}
91+
92+
/// <summary>
93+
/// DI constructor.
94+
/// </summary>
95+
/// <param name="fileSystem"></param>
8496
public ConfigurationPathJsonConverter(IFileSystem fileSystem)
8597
{
8698
_fileSystem = fileSystem;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
using FluentAssertions;
2+
3+
namespace NexusMods.UI.Tests;
4+
5+
public class AppStartupTests
6+
{
7+
8+
[Fact]
9+
public void CanBuildHost()
10+
{
11+
var host = App.Program.BuildHost();
12+
App.UI.Startup.BuildAvaloniaApp(host.Services).Should().NotBeNull();
13+
}
14+
}

0 commit comments

Comments
 (0)