-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathConfigHandler.cs
50 lines (46 loc) · 1.62 KB
/
ConfigHandler.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
using CanFrameBuilder.Model;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
using System.Windows;
namespace CanFrameBuilder
{
internal class ConfigHandler
{
internal static void SaveConfig(string configOutputPath, List<CANFrame> canFrames)
{
try
{
var jsonSerializerOptions = new JsonSerializerOptions
{
WriteIndented = true
};
var jsonString = JsonSerializer.Serialize(canFrames, jsonSerializerOptions);
File.WriteAllText(configOutputPath, jsonString);
}
catch(Exception ex)
{
MessageBox.Show($"Encountered error when saving Config file: {configOutputPath}." +
$" Error: {ex.Message}", "Config Save ERROR", MessageBoxButton.OK, MessageBoxImage.Error);
}
}
internal static List<CANFrame> LoadConfig(string configInputPath)
{
try
{
var jsonText = File.ReadAllText(configInputPath);
var deserializedConfig = JsonSerializer.Deserialize<List<CANFrame>>(jsonText);
return deserializedConfig ?? [];
}catch(Exception ex)
{
MessageBox.Show($"Encountered error when loading Config file: {configInputPath}." +
$" Error: {ex.Message}", "Config Load ERROR", MessageBoxButton.OK, MessageBoxImage.Error);
return [];
}
}
}
}