/// <summary> /// Initialise the settings object based upon the current character ID /// </summary> private void InitSettings() { EMMADataSet.APICharSettingsDataTable settingsTable = new EMMADataSet.APICharSettingsDataTable(); settingsTableAdapter.FillByChar(settingsTable, _charID); if (settingsTable.Count > 0) { XmlDocument settingsDoc = new XmlDocument(); settingsDoc.LoadXml(settingsTable[0].Settings); _settings = new APICharSettings(settingsDoc); } else { _settings = new APICharSettings(_charID); } _settings.SettingsUpdated += new SettingsUpdatedHandler(_settings_SettingsUpdated); }
/// <summary> /// Store the character's settings in the database /// </summary> public void StoreSettings() { // If it's null then it's not been accessed and there are no changes to store.. if (_settings != null) { if (_settings.Changed) { EMMADataSet.APICharSettingsDataTable settingsTable = new EMMADataSet.APICharSettingsDataTable(); lock (settingsTableAdapter) { settingsTableAdapter.FillByChar(settingsTable, _charID); if (settingsTable.Count == 0) { EMMADataSet.APICharSettingsRow newRow = settingsTable.NewAPICharSettingsRow(); newRow.CharID = _charID; // Just make this blank temporarilly so we are allowed to add it to the table. newRow.Settings = ""; settingsTable.AddAPICharSettingsRow(newRow); } settingsTable[0].Settings = _settings.Xml.InnerXml; settingsTableAdapter.Update(settingsTable); } _settings.Changed = false; } } }