/// <summary> /// Initialise the settings object based upon the current report group ID /// </summary> private void InitSettings() { EMMADataSet.RptGroupSettingsDataTable settingsTable = new EMMADataSet.RptGroupSettingsDataTable(); lock (rptGroupSettingsTableAdapter) { rptGroupSettingsTableAdapter.FillByID(settingsTable, _id); } if (settingsTable.Count > 0) { XmlDocument settingsDoc = new XmlDocument(); settingsDoc.LoadXml(settingsTable[0].Settings); _settings = new ReportGroupSettings(settingsDoc); } else { _settings = new ReportGroupSettings(_id); } }
/// <summary> /// Store the report group'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.RptGroupSettingsDataTable settingsTable = new EMMADataSet.RptGroupSettingsDataTable(); lock (rptGroupSettingsTableAdapter) { rptGroupSettingsTableAdapter.FillByID(settingsTable, _id); if (settingsTable.Count == 0) { EMMADataSet.RptGroupSettingsRow newRow = settingsTable.NewRptGroupSettingsRow(); newRow.ReportGroupID = _id; // Just make this blank temporarilly so we are allowed to add it to the table. newRow.Settings = ""; settingsTable.AddRptGroupSettingsRow(newRow); } settingsTable[0].Settings = _settings.Xml.InnerXml; rptGroupSettingsTableAdapter.Update(settingsTable); } _settings.Changed = false; } } // Store character level settings as well. foreach (EVEAccount account in _accounts) { foreach (APICharacter character in account.Chars) { if (character.CharIncWithRptGroup || character.CorpIncWithRptGroup) { character.StoreSettings(); } } } }