Fix to prevent config corruption

This commit is contained in:
Serge
2024-01-07 21:38:53 +01:00
parent 8a2eec7823
commit baf52720bb
2 changed files with 34 additions and 12 deletions

View File

@@ -1,5 +1,4 @@
using GHelper.Mode;
using System.Diagnostics;
using System.Management;
using System.Text.Json;
@@ -13,6 +12,7 @@ public static class AppConfig
private static string? _bios;
private static Dictionary<string, object> config = new Dictionary<string, object>();
private static System.Timers.Timer timer = new System.Timers.Timer(1000);
static AppConfig()
{
@@ -52,8 +52,39 @@ public static class AppConfig
Init();
}
timer.Elapsed += Timer_Elapsed;
}
private static void Timer_Elapsed(object? sender, System.Timers.ElapsedEventArgs e)
{
timer.Stop();
string jsonString = JsonSerializer.Serialize(config, new JsonSerializerOptions { WriteIndented = true });
var backup = configFile + ".bak";
try
{
File.WriteAllText(backup, jsonString);
}
catch (Exception ex)
{
Logger.WriteLine(ex.ToString());
return;
}
Thread.Sleep(500);
if (File.ReadAllText(backup).Contains("}"))
{
File.Copy(backup, configFile, true);
}
else
{
Logger.WriteLine("Error writing config");
}
}
public static string GetModel()
{
@@ -157,16 +188,7 @@ public static class AppConfig
private static void Write()
{
string jsonString = JsonSerializer.Serialize(config, new JsonSerializerOptions { WriteIndented = true });
try
{
File.WriteAllText(configFile + ".bak", jsonString);
File.Copy(configFile + ".bak", configFile, true);
}
catch (Exception e)
{
Debug.Write(e.ToString());
}
timer.Start();
}
public static void Set(string name, int value)

View File

@@ -556,7 +556,7 @@ public class AsusACPI
public bool IsNVidiaGPU()
{
return (!IsAllAmdPPT() && Program.acpi.DeviceGet(GPUEco) >= 0);
return (!IsAllAmdPPT() && Program.acpi.DeviceGet(GPUEco) >= 0 && !AppConfig.IsAlly());
}
public void SetAPUMem(int memory = 4)