Added app configuration
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.Configuration.Json;
|
||||
using Microsoft.Extensions.FileProviders;
|
||||
|
||||
namespace TheXamlGuy.TaskbarGroup.Core
|
||||
{
|
||||
public class WritableJsonConfigurationSource : JsonConfigurationSource
|
||||
{
|
||||
public override IConfigurationProvider Build(IConfigurationBuilder builder)
|
||||
{
|
||||
EnsureDefaultsWithSteam(builder);
|
||||
return new WritableJsonConfigurationProvider(this);
|
||||
}
|
||||
|
||||
private void EnsureDefaultsWithSteam(IConfigurationBuilder builder)
|
||||
{
|
||||
EnsureDefaults(builder);
|
||||
|
||||
if (FileProvider is PhysicalFileProvider physicalFileProvider)
|
||||
{
|
||||
var outputFile = System.IO.Path.Combine(physicalFileProvider.Root, Path);
|
||||
if (!File.Exists(outputFile) && CreateFromSteam is not null)
|
||||
{
|
||||
using var fileStream = new FileStream(outputFile, FileMode.Create, FileAccess.Write);
|
||||
CreateFromSteam.CopyTo(fileStream);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public Stream? CreateFromSteam { get; set; }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user