RustyHearts-Launcher/RHLauncher.Helper/ServiceFileHandler.cs
2024-01-04 22:59:30 -03:00

58 lines
1.9 KiB
C#

using RHLauncher.RHLauncher.i8n;
using System.Security.Cryptography;
namespace RHLauncher.RHLauncher.Helper
{
public class ServiceFileHandler
{
private readonly string _iniFilePath;
private readonly string _installDirectory;
public ServiceFileHandler(string iniFileName, string installDirectory)
{
_iniFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, iniFileName);
_installDirectory = installDirectory;
}
public void UpdateService()
{
string service = new IniFile(_iniFilePath).ReadValue("Info", "Service");
string md5 = CalculateMD5(service);
string serviceDatPath = Path.Combine(_installDirectory, "Service.dat");
try
{
if (File.Exists(serviceDatPath))
{
string[] lines = File.ReadAllLines(serviceDatPath);
string currentMd5 = lines[0];
string currentService = string.Join(Environment.NewLine, lines, 1, lines.Length - 1);
if (currentMd5 != md5)
{
lines[0] = md5;
File.WriteAllLines(serviceDatPath, lines);
}
}
else
{
MsgBoxForm.Show(LocalizedStrings.ServiceDatFileMissing, LocalizedStrings.Error);
return;
}
}
catch (Exception ex)
{
MsgBoxForm.Show(LocalizedStrings.ServiceUpdateError + ": " + ex.Message, LocalizedStrings.Error);
}
}
private static string CalculateMD5(string input)
{
byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(input);
byte[] hashBytes = MD5.HashData(inputBytes);
return BitConverter.ToString(hashBytes).Replace("-", "").ToLower();
}
}
}