mlaumcherb/Млаумчерб.Клиент/Настройки.cs
2024-09-24 16:18:06 +05:00

45 lines
2.6 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

namespace Млаумчерб.Клиент;
public record Настройки
{
public string имя_пользователя { get; set; } = "";
public int выделенная_память_мб { get; set; } = 4096;
public bool открыватьаесь_экран { get; set; }
public string путь_к_кубачу { get; set; } = ".";
public string путь_к_жабе { get; set; } = "java";
public bool скачатьабу { get; set; } = true;
public string? последняяапущенная_версия;
public static Настройки ЗагрузитьИзФайла(string имяайла = "млаумчерб.настройки")
{
Приложение.Логгер.LogInfo(nameof(Настройки), $"попытка загрузить настройки из файла '{имя_файла}'");
if(!File.Exists(имяайла))
{
Приложение.Логгер.LogInfo(nameof(Настройки), "файл не существует");
return new Настройки();
}
string текст = File.ReadAllText(имяайла);
Настройки? н = JsonConvert.DeserializeObject<Настройки>(текст);
if (н == null)
{
File.Move(имяайла, имяайла + ".старые", true);
н = new Настройки();
н.СохранитьВФайл();
Ошибки.ПоказатьСообщение("Настройки", $"Не удалось прочитать настройки.\n" +
$"Сломанный файл настроек переименован в '{имя_файла}.старые'.\n" +
$"Создан новый файл '{имя_файла}'.");
}
Приложение.Логгер.LogInfo(nameof(Настройки), $"настройки загружены: {н}");
return н;
}
public void СохранитьВФайл(string имяайла = "млаумчерб.настройки")
{
Приложение.Логгер.LogInfo(nameof(Настройки), $"попытка сохранить настройки в файл '{имя_файла}'");
var текст = JsonConvert.SerializeObject(this, Formatting.Indented);
File.WriteAllText(имяайла, текст);
Приложение.Логгер.LogInfo(nameof(Настройки), $"настройки сохранены: {текст}");
}
}