45 lines
2.6 KiB
C#
45 lines
2.6 KiB
C#
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(Настройки), $"настройки сохранены: {текст}");
|
||
}
|
||
} |