コード例 #1
0
        public AccountSaveDataManager(ConcurrentDictionary <string, UserProfile> profiles)
        {
            // TODO: Use 0x8000000000000010 system savedata instead of a JSON file if needed.

            if (File.Exists(_profilesJsonPath))
            {
                ProfilesJson profilesJson = JsonHelper.DeserializeFromFile <ProfilesJson>(_profilesJsonPath);

                foreach (var profile in profilesJson.Profiles)
                {
                    UserProfile addedProfile = new UserProfile(new UserId(profile.UserId), profile.Name, profile.Image, profile.LastModifiedTimestamp);

                    profiles.AddOrUpdate(profile.UserId, addedProfile, (key, old) => addedProfile);
                }

                LastOpened = new UserId(profilesJson.LastOpened);
            }
            else
            {
                LastOpened = AccountManager.DefaultUserId;
            }
        }
コード例 #2
0
        public void Save(ConcurrentDictionary <string, UserProfile> profiles)
        {
            ProfilesJson profilesJson = new ProfilesJson()
            {
                Profiles   = new List <UserProfileJson>(),
                LastOpened = LastOpened.ToString()
            };

            foreach (var profile in profiles)
            {
                profilesJson.Profiles.Add(new UserProfileJson()
                {
                    UserId                = profile.Value.UserId.ToString(),
                    Name                  = profile.Value.Name,
                    AccountState          = profile.Value.AccountState,
                    OnlinePlayState       = profile.Value.OnlinePlayState,
                    LastModifiedTimestamp = profile.Value.LastModifiedTimestamp,
                    Image                 = profile.Value.Image,
                });
            }

            File.WriteAllText(_profilesJsonPath, JsonHelper.Serialize(profilesJson, true));
        }