using System.Text.Json; using APP.DTO; namespace APP.Utility; internal static class SaveBoy { private static readonly string AuthFile = ".." + Path.DirectorySeparatorChar + "reg.json"; internal static async Task ReadAuth() { if (File.Exists(AuthFile)) { return await ReadFromFile(AuthFile); } return null; } internal static void DeleteAuth() { if (File.Exists(AuthFile)) { File.Delete(AuthFile); } } internal static async Task SaveAuth(Auth auth) { await WriteToFile(AuthFile, auth); } private static async Task WriteToFile(string filePath, T objectToWrite) { try { await using var sw = new StreamWriter(filePath, false); try { var res = JsonSerializer.Serialize(objectToWrite); await sw.WriteAsync(res); } finally { sw.Close(); } } catch (Exception ex) { await Console.Error.WriteLineAsync(ex.Message); } } private static async Task ReadFromFile(string filePath) { try { using var sr = new StreamReader(filePath); try { var text = await sr.ReadToEndAsync(); var res = JsonSerializer.Deserialize(text); return res; } finally { sr.Close(); } } catch (Exception ex) { await Console.Error.WriteLineAsync(ex.Message); } return default; } }