/// <summary> /// Initializes this <see cref="ClientAccountFileStorage"/> and reads all <see cref="ClientAccountJson"/> from the home directory as well as the current <see cref="IdCounter"/>. /// </summary> /// <param name="homeDirectory">home directory path</param> public void Initialize(string homeDirectory) { _homeDirectory = homeDirectory; if (!Directory.Exists(homeDirectory)) { Directory.CreateDirectory(homeDirectory); File.WriteAllText(_homeDirectory + "ID.config", 0 + ""); } _clientAccounts = new List <IClientAccount>(); //load all client accounts: foreach (string file in Directory.EnumerateFiles(_homeDirectory, "*.json")) { string json = File.ReadAllText(file); ClientAccountJson caj = JsonSerializer.DeserializeJson <ClientAccountJson>(json); if (caj != null) { _clientAccounts.Add(caj); } } //load ID counter string id = File.ReadAllText(_homeDirectory + "ID.config"); _idCounter = Int32.Parse(id); }
public static ClientAccountJson CreateInstance(IClientAccount ca) { ClientAccountJson client = new ClientAccountJson(); client.ClientId = ca.ClientId; client.AccessTokenExpiryInSeconds = ca.AccessTokenExpiryInSeconds; client.ClientSecret = ca.ClientSecret; client.Description = ca.Description; client.FriendlyName = ca.FriendlyName; client.HasUser = ca.HasUser; client.IsBlocked = ca.IsBlocked; client.IsClientIdRequiredForRefreshToken = ca.IsClientIdRequiredForRefreshToken; client.IsClientSecretRequiredForPasswordGrant = ca.IsClientSecretRequiredForPasswordGrant; client.IsClientSecretRequiredForRefreshToken = ca.IsClientSecretRequiredForRefreshToken; client.IsUserIdRequiredForRefreshToken = ca.IsUserIdRequiredForRefreshToken; client.IsUserPasswordRequiredForRefreshToken = ca.IsUserPasswordRequiredForRefreshToken; client.RefreshTokenExpiryInSeconds = ca.RefreshTokenExpiryInSeconds; client.Scope = ca.Scope; return(client); }
/// <summary> /// Saves the passed <see cref="IClientAccount"/> to disk. /// </summary> /// <param name="data">data to be saved</param> private void SaveToDisk(IClientAccount data) { ClientAccountJson caj = ClientAccountJson.CreateInstance(data); File.WriteAllText(_homeDirectory + data.ClientId + ".json", JsonSerializer.SerializeJson(caj)); }