Skip to content

Commit

Permalink
Fixed SettingStore release path not working due to missing directory
Browse files Browse the repository at this point in the history
  • Loading branch information
AKruimink committed Sep 6, 2020
1 parent a9509f6 commit 8974745
Showing 1 changed file with 17 additions and 13 deletions.
30 changes: 17 additions & 13 deletions src/WinReform/WinReform.Domain/Settings/SettingStore.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using System;
using System.IO;
using System.Reflection;
using System.Text.Json;
using System.Xml;
using System.Xml.Serialization;

Expand Down Expand Up @@ -32,7 +33,7 @@ public SettingStore()
///<inheritdoc/>
public TSetting Load<TSetting>() where TSetting : new()
{
var file = Path.Combine(_filePath, $"{typeof(TSetting).Name}.xml");
var file = Path.Combine(_filePath, $"{typeof(TSetting).Name}.json");
var fileInfo = new FileInfo(file);

// Create default settings if non exist
Expand All @@ -41,25 +42,28 @@ public SettingStore()
Save(new TSetting());
}

var serializer = new XmlSerializer(typeof(TSetting));
var settingString = File.ReadAllText(file);
var serializerOptions = new JsonSerializerOptions
{
WriteIndented = true
};

using var reader = new StreamReader(file);
return (TSetting)serializer.Deserialize(reader);
return JsonSerializer.Deserialize<TSetting>(settingString, serializerOptions);
}

///<inheritdoc/>
public void Save<TSetting>(TSetting settings)
{
var file = Path.Combine(_filePath, $"{typeof(TSetting).Name}.xml");
var settingsFile = new XmlDocument();
var serializer = new XmlSerializer(typeof(TSetting));
var file = Path.Combine(_filePath, $"{typeof(TSetting).Name}.json");
var fileInfo = new FileInfo(file);
fileInfo.Directory.Create();

using var stream = new MemoryStream();
serializer.Serialize(stream, settings);
stream.Position = 0;
settingsFile.Load(stream);
settingsFile.Save(file);
stream.Close();
var serializerOptions = new JsonSerializerOptions
{
WriteIndented = true
};
var json = JsonSerializer.Serialize(settings, serializerOptions);
File.WriteAllText(file, json);
}
}
}

0 comments on commit 8974745

Please sign in to comment.