/// <summary> /// Initializes this <see cref="UserAccountFileStorage"/> and reads all <see cref="UserAccountJson"/> 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 + ""); } _userAccounts = new List <IUserAccount>(); //load all client accounts: foreach (string file in Directory.EnumerateFiles(_homeDirectory, "*.json")) { string json = File.ReadAllText(file); UserAccountJson uaj = JsonSerializer.DeserializeJson <UserAccountJson>(json); if (uaj != null) { _userAccounts.Add(uaj); } } //load ID counter string id = File.ReadAllText(_homeDirectory + "ID.config"); _idCounter = Int32.Parse(id); }
public static UserAccountJson CreateInstance(IUserAccount ua) { UserAccountJson user = new UserAccountJson(); user.UserId = ua.UserId; user.Name = ua.Name; user.Description = ua.Description; user.IsBlocked = ua.IsBlocked; user.Password = ua.Password; user.Scope = ua.Scope; user.Username = ua.Username; return(user); }
/// <summary> /// Saves the passed <see cref="IUserAccount"/> to disk. /// </summary> /// <param name="data">data to be saved</param> private void SaveToDisk(IUserAccount data) { UserAccountJson uaj = UserAccountJson.CreateInstance(data); File.WriteAllText(_homeDirectory + data.ClientId + ".json", JsonSerializer.SerializeJson(uaj)); }