42 lines
1.7 KiB
C#
42 lines
1.7 KiB
C#
using Newtonsoft.Json;
|
||
|
||
namespace Млаумчерб.Клиент;
|
||
|
||
public class Настройки
|
||
{
|
||
public string имя_пользователя { get; set; } = "";
|
||
public int выделенная_память_мб { get; set; } = 4096;
|
||
public bool открывать_на_весь_экран { get; set; }
|
||
|
||
public static readonly Encoding UTF8WithoutBom = new UTF8Encoding(false);
|
||
|
||
public static Настройки ЗагрузитьИзФайла(string имя_файла = "млаумчерб.настройки")
|
||
{
|
||
//TODO: лог
|
||
if(!File.Exists(имя_файла))
|
||
{
|
||
return new Настройки();
|
||
}
|
||
|
||
string текст = File.ReadAllText(имя_файла);
|
||
Настройки? н = JsonConvert.DeserializeObject<Настройки>(текст);
|
||
if (н == null)
|
||
{
|
||
File.Move(имя_файла, имя_файла + ".старые", true);
|
||
н = new Настройки();
|
||
н.СохранитьВФайл();
|
||
Ошибки.ПоказатьСообщение($"Не удалось прочитать настройки.\n" +
|
||
$"Сломанный файл настроек переименован в '{имя_файла}.старые'.\n" +
|
||
$"Создан новый файл '{имя_файла}'.");
|
||
}
|
||
|
||
return н;
|
||
}
|
||
|
||
public void СохранитьВФайл(string имя_файла = "млаумчерб.настройки")
|
||
{
|
||
//TODO: log
|
||
var текст = JsonConvert.SerializeObject(this, Formatting.Indented);
|
||
File.WriteAllText(имя_файла, текст, UTF8WithoutBom);
|
||
}
|
||
} |