private void GetData(Program plugin, string importProjectPath) { importVarSettings = new VariableDataSet(); importVarSettings.ReadXml(plugin.getSettingsFile(importProjectPath)); plugin.fixVariablesDecimalSeparator(importVarSettings); importVarSettings.AcceptChanges(); masterVarSettings = plugin.settingsData; }
internal bool Init(Program plugin, string importProjectPath) { try { this.plugin = plugin; this.importProjectPath = importProjectPath; // read the VariableSettings of the import project into importVarSettings // and, for convenience, call plugin.settingsData masterVarSettings (i.e. masterVarSettings = plugin.settingsData) GetData(plugin, importProjectPath); // check if import project has countries which do not exist in master project if (!CompareCountries()) { return(false); } if (notAcceptedCountries.Count > 0) // remove all references for countries which exist in import project { // but the user has decided to not import SettingsManagement.ManageCountries.RemoveCountryReferences(importVarSettings, notAcceptedCountries); importVarSettings.AcceptChanges(); } // compare each variable type and write results to the respective grid ... // ... basic variables CompareTable(masterVarSettings.Cur_BasicVariables, importVarSettings.Cur_BasicVariables, gridBasic); // ... advanced variables CompareTable(masterVarSettings.Cur_AdvancedVariables, importVarSettings.Cur_AdvancedVariables, gridAdvanced); // ... advanced country specific variables CompareTable(masterVarSettings.Cur_AdvancedCountrySpecificVariables, importVarSettings.Cur_AdvancedCountrySpecificVariables, gridAdvCSpec); // ... derived variables CompareTable(masterVarSettings.Cur_DerivedVariables, importVarSettings.Cur_DerivedVariables, gridDerived); // activate the first tab where the user can see a change bool diffFound = false; if (gridBasic.Rows.Count > 0) { tabControl.SelectedTab = tabBasic; diffFound = true; } else if (gridAdvanced.Rows.Count > 0) { tabControl.SelectedTab = tabAdvanced; diffFound = true; } else if (gridAdvCSpec.Rows.Count > 0) { tabControl.SelectedTab = tabAdCSpec; diffFound = true; } else if (gridDerived.Rows.Count > 0) { tabControl.SelectedTab = tabDerived; diffFound = true; } if (!diffFound) { MessageBox.Show(string.Format("Variables Settings of {0} and {1} are equal.", Path.GetFileName(plugin.currentProjectPath), Path.GetFileName(importProjectPath)) + Environment.NewLine + "Nothing to import."); } return(diffFound); } catch (Exception exception) { MessageBox.Show(string.Format("Failed to assess variables-differences of HHOT projects {0} and {1}:", Path.GetFileName(plugin.currentProjectPath), Path.GetFileName(importProjectPath)) + Environment.NewLine + exception.Message); return(false); } }