/// <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);
        }
Exemplo n.º 2
0
        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));
        }