using System; using AudibleApi.Authorization; using Dinah.Core.IO; using Newtonsoft.Json; namespace AudibleUtilities { public class AccountsSettingsPersister : JsonFilePersister { public static event EventHandler Saving; public static event EventHandler Saved; protected override void OnSaving() => Saving?.Invoke(null, null); protected override void OnSaved() => Saved?.Invoke(null, null); /// Alias for Target public AccountsSettings AccountsSettings => Target; /// uses path. create file if doesn't yet exist public AccountsSettingsPersister(AccountsSettings target, string path, string jsonPath = null) : base(target, path, jsonPath) { } /// load from existing file public AccountsSettingsPersister(string path, string jsonPath = null) : base(path, jsonPath) { } protected override JsonSerializerSettings GetSerializerSettings() => Identity.GetJsonSerializerSettings(); } }