public void UpsertUserProfile(UserProfile user) { Debug.Assert(!this.m_readOnly, "Configuration in use is read-only. Did you forget BeginCachedConfiguration?"); if (user.UniqueId.Length == 0) { user.UniqueId = Guid.NewGuid().ToString(); // Clone the user and add to the configuration's UserProfile dictionary UserProfiles.Add(user.UniqueId, (UserProfile)user.Clone()); _logger.LogInformation($"User {user.Name} added."); } else { Debug.Assert(UserProfiles.ContainsKey(user.UniqueId), "User profile not found in dictionary. Cannot update."); // Clone the user and update the configuration's UserProfile dictionary UserProfiles[user.UniqueId] = (UserProfile)user.Clone(); _logger.LogInformation($"User {user.Name} updated."); } // The Default property is included on the profile just as a helper (it's not saved in the json). // What is saved is the UniqueId of the default user in the DefaultUserProfile field. if (user.Default) { DefaultUserProfile = user.UniqueId; } else if (DefaultUserProfile == user.UniqueId) { DefaultUserProfile = ""; } }
public void DeleteUserProfile(UserProfile user) { Debug.Assert(!this.m_readOnly, "Configuration in use is read-only. Did you forget BeginCachedConfiguration?"); Debug.Assert(UserProfiles.ContainsKey(user.UniqueId), "User profile not found in dictionary. Cannot delete."); UserProfiles.Remove(user.UniqueId); _logger.LogInformation($"User {user.Name} deleted."); }