Ejemplo n.º 1
0
        public FormManageConfiguration(FormMain parent) : base(parent)
        {
            this.parentFormMain = parent;
            InitializeComponent();

            //Make sure the root directories exist, based on hard-coded (tool) parameters
            //Also create the initial file with the configuration if it doesn't exist already
            EnvironmentConfiguration.InitialiseRootPath();

            // Set the core TEAM (path) file using the information retrieved from memory. These values were loaded into memory from the path file in the main form.
            //Dev or prod environment (working environment)
            RadioButton radioButtonWorkingEnvironment;

            if (GlobalParameters.WorkingEnvironment == "Development")
            {
                radioButtonWorkingEnvironment         = radioButtonDevelopment;
                radioButtonWorkingEnvironment.Checked = true;
            }
            else if (GlobalParameters.WorkingEnvironment == "Production")
            {
                radioButtonWorkingEnvironment         = radioButtonProduction;
                radioButtonWorkingEnvironment.Checked = true;
            }

            //Paths
            textBoxOutputPath.Text        = GlobalParameters.OutputPath;
            textBoxConfigurationPath.Text = GlobalParameters.ConfigurationPath;

            // Load the configuration file using the paths retrieved from the application root contents (configuration path)
            try
            {
                LocalInitialiseConnections(GlobalParameters.ConfigurationPath + GlobalParameters.ConfigFileName + '_' + GlobalParameters.WorkingEnvironment + GlobalParameters.FileExtension);
            }
            catch (Exception ex)
            {
                richTextBoxInformation.AppendText("Errors occured trying to load the configuration file, the message is " + ex + ". No default values were loaded. \r\n\r\n");
            }

            _formLoading = false;
        }
Ejemplo n.º 2
0
        public FormMain()
        {
            InitializeComponent();

            // Instantiate the logging
            EventLog eventLog = new EventLog();

            // Set the version of the build for everything
            const string versionNumberForTeamApplication = "v1.6.0";

            Text = "TEAM - Taxonomy for ETL Automation Metadata " + versionNumberForTeamApplication;

            //richTextBoxInformation.AppendText("Starting from "+GlobalParameters.RootPath+"\r\n\r\n");
            //richTextBoxInformation.AppendText("Script path is " + GlobalParameters.ScriptPath + "\r\n\r\n");

            richTextBoxInformation.AppendText("Initialising the application.\r\n\r\n");

            // Make sure the application and custom location directories exist
            try
            {
                EnvironmentConfiguration.InitialiseRootPath();
                eventLog.Add(Event.CreateNewEvent(EventTypes.Information, "... The TEAM directories are available and initialised.\r\n"));
            }
            catch
            {
                eventLog.Add(Event.CreateNewEvent(EventTypes.Error, "The directories required to operate TEAM are not available and can not be created. Do you have administrative priviliges in the installation directory to create these additional directories?"));
            }

            // Set the root path, to be able to locate the customisable configuration file
            try
            {
                EnvironmentConfiguration.LoadRootPathFile();
                eventLog.Add(Event.CreateNewEvent(EventTypes.Information, "... The core configuration file has been loaded.\r\n"));
            }
            catch
            {
                eventLog.Add(Event.CreateNewEvent(EventTypes.Error, "The core configuration file could not be loaded. Is there a Configuration directory in the TEAM installation location?"));
            }

            // Make sure the configuration file is in memory
            try
            {
                EnvironmentConfiguration.InitialiseConfigurationPath();
                eventLog.Add(Event.CreateNewEvent(EventTypes.Information, "... The user configuration paths are available.\r\n"));
            }
            catch
            {
                eventLog.Add(Event.CreateNewEvent(EventTypes.Error, "An issue was encountered creating or detecting the configuration paths."));
            }

            // Load the available configuration file
            try
            {
                EnvironmentConfiguration.LoadConfigurationFile(GlobalParameters.ConfigurationPath + GlobalParameters.ConfigFileName + '_' + GlobalParameters.WorkingEnvironment + GlobalParameters.FileExtension);
                eventLog.Add(Event.CreateNewEvent(EventTypes.Information, "... The user configuration settings (file) have been loaded.\r\n"));
            }
            catch
            {
                eventLog.Add(Event.CreateNewEvent(EventTypes.Error, "An issue was encountered loading the user configuration file."));
            }

            // Load the pattern definition file
            try
            {
                ConfigurationSettings.patternDefinitionList = LoadPatternDefinition.DeserializeLoadPatternDefinition(GlobalParameters.LoadPatternPath + GlobalParameters.LoadPatternDefinitionFile);
                eventLog.Add(Event.CreateNewEvent(EventTypes.Information, "... The pattern definition file was loaded successfully.\r\n"));
            }
            catch
            {
                eventLog.Add(Event.CreateNewEvent(EventTypes.Error, "An issue was encountered loading the pattern definition file."));
            }


            // Report the events (including errors) back to the user
            int errorCounter = 0;

            foreach (Event individualEvent in eventLog)
            {
                if (individualEvent.eventCode == (int)EventTypes.Error)
                {
                    errorCounter++;
                }

                richTextBoxInformation.AppendText(individualEvent.eventDescription);
            }

            richTextBoxInformation.AppendText($"\r\n{errorCounter} error(s) have been found at startup.\r\n\r\n");


            TestConnections();

            //Startup information
            richTextBoxInformation.AppendText("\r\nApplication initialised - the Taxonomy of ETL Automation Metadata (TEAM). \r\n");
            richTextBoxInformation.AppendText("Welcome to version " + versionNumberForTeamApplication + ".\r\n\r\n");

            labelWorkingEnvironment.Text = "The working environment is: " + GlobalParameters.WorkingEnvironment;
        }
Ejemplo n.º 3
0
        /// <summary>
        ///    Check if the paths exists and create them if necessary
        /// </summary>
        internal static void InitialiseConfigurationPath()
        {
            // Create the configuration directory if it does not exist yet
            try
            {
                if (!Directory.Exists(FormBase.GlobalParameters.ConfigurationPath))
                {
                    Directory.CreateDirectory(FormBase.GlobalParameters.ConfigurationPath);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(
                    "Error creation default directory at " + FormBase.GlobalParameters.ConfigurationPath +
                    " the message is " + ex, "An issue has been encountered", MessageBoxButtons.OK,
                    MessageBoxIcon.Error);
            }

            // Create the output directory if it does not exist yet
            try
            {
                if (!Directory.Exists(FormBase.GlobalParameters.OutputPath))
                {
                    Directory.CreateDirectory(FormBase.GlobalParameters.OutputPath);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(
                    "Error creation default directory at " + FormBase.GlobalParameters.OutputPath +
                    " the message is " + ex, "An issue has been encountered", MessageBoxButtons.OK,
                    MessageBoxIcon.Error);
            }

            // Create a new dummy configuration file
            try
            {
                // Create a default configuration file if the file does not exist as expected
                if (File.Exists(FormBase.GlobalParameters.ConfigurationPath +
                                FormBase.GlobalParameters.ConfigFileName + '_' +
                                FormBase.GlobalParameters.WorkingEnvironment +
                                FormBase.GlobalParameters.FileExtension))
                {
                    return;
                }
                var newEnvironmentConfiguration = new EnvironmentConfiguration();
                newEnvironmentConfiguration.CreateDummyEnvironmentConfiguration(
                    FormBase.GlobalParameters.ConfigurationPath + FormBase.GlobalParameters.ConfigFileName + '_' +
                    FormBase.GlobalParameters.WorkingEnvironment + FormBase.GlobalParameters.FileExtension);
            }
            catch (Exception ex)
            {
                MessageBox.Show(
                    "An error occurred while creation the default Configuration File. The error message is " + ex,
                    "An issue has been encountered", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            // Create a new dummy validation file
            try
            {
                // Create a default configuration file if the file does not exist as expected
                if (File.Exists(FormBase.GlobalParameters.ConfigurationPath +
                                FormBase.GlobalParameters.ValidationFileName + '_' +
                                FormBase.GlobalParameters.WorkingEnvironment +
                                FormBase.GlobalParameters.FileExtension))
                {
                    return;
                }
                var newEnvironmentConfiguration = new EnvironmentConfiguration();
                newEnvironmentConfiguration.CreateDummyEnvironmentConfiguration(
                    FormBase.GlobalParameters.ConfigurationPath + FormBase.GlobalParameters.ValidationFileName +
                    '_' + FormBase.GlobalParameters.WorkingEnvironment + FormBase.GlobalParameters.FileExtension);
            }
            catch (Exception ex)
            {
                MessageBox.Show(
                    "An error occurred while creation the default Configuration File. The error message is " + ex,
                    "An issue has been encountered", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Save validation settings
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void toolStripMenuItem2_Click(object sender, EventArgs e)
        {
            try
            {
                // Source object existence check
                var stringSourceObjectExistence = "";
                if (checkBoxSourceObjectExistence.Checked)
                {
                    stringSourceObjectExistence = "True";
                }
                else
                {
                    stringSourceObjectExistence = "False";
                }
                ValidationSettings.SourceObjectExistence = stringSourceObjectExistence;


                // Target object existence check
                var stringtargetObjectExistence = "";
                if (checkBoxTargetObjectExistence.Checked)
                {
                    stringtargetObjectExistence = "True";
                }
                else
                {
                    stringtargetObjectExistence = "False";
                }
                ValidationSettings.TargetObjectExistence = stringtargetObjectExistence;


                // Source business key existence check
                var stringBusinessKeyExistence = "";
                if (checkBoxSourceBusinessKeyExistence.Checked)
                {
                    stringBusinessKeyExistence = "True";
                }
                else
                {
                    stringBusinessKeyExistence = "False";
                }
                ValidationSettings.SourceBusinessKeyExistence = stringBusinessKeyExistence;


                // Source attribute existence check
                var stringSourceAttributeExistence = "";
                if (checkBoxSourceAttribute.Checked)
                {
                    stringSourceAttributeExistence = "True";
                }
                else
                {
                    stringSourceAttributeExistence = "False";
                }
                ValidationSettings.SourceAttributeExistence = stringSourceAttributeExistence;


                // Target attribute existence check
                var stringTargetAttributeExistence = "";
                if (checkBoxTargetAttribute.Checked)
                {
                    stringTargetAttributeExistence = "True";
                }
                else
                {
                    stringTargetAttributeExistence = "False";
                }
                ValidationSettings.TargetAttributeExistence = stringTargetAttributeExistence;


                // Logical Group Validation
                var stringLogicalGroup = "";
                if (checkBoxLogicalGroup.Checked)
                {
                    stringLogicalGroup = "True";
                }
                else
                {
                    stringLogicalGroup = "False";
                }
                ValidationSettings.LogicalGroup = stringLogicalGroup;


                // Link Key Order Validation
                var stringLinkKeyOrder = "";
                if (checkBoxLinkKeyOrder.Checked)
                {
                    stringLinkKeyOrder = "True";
                }
                else
                {
                    stringLinkKeyOrder = "False";
                }
                ValidationSettings.LinkKeyOrder = stringLinkKeyOrder;


                // Business key syntax check
                var businessKeySyntax = "";
                if (checkBoxBusinessKeySyntaxValidation.Checked)
                {
                    businessKeySyntax = "True";
                }
                else
                {
                    businessKeySyntax = "False";
                }
                ValidationSettings.BusinessKeySyntax = businessKeySyntax;


                // Write to disk
                EnvironmentConfiguration.SaveValidationFile();

                richTextBoxInformation.Text = "The values have been successfully saved.";
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error: Could not write values to memory and disk. Original error: " + ex.Message, "An issues has been encountered", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Ejemplo n.º 5
0
        private void SetStandardConfigurationSettings()
        {
            if (checkBoxConfigurationSettings.Checked)
            {
                EnvironmentConfiguration.CreateEnvironmentConfigurationBackupFile();

                // Shared values (same for all samples)
                //var metadataRepositoryType = "SQLServer";
                var    stagingAreaPrefix  = "STG";
                var    hubTablePrefix     = "HUB";
                var    satTablePrefix     = "SAT";
                var    linkTablePrefix    = "LNK";
                var    linkSatTablePrefix = "LSAT";
                string psaKeyLocation     = "PrimaryKey";

                string persistentStagingAreaPrefix;
                string keyIdentifier;
                string sourceRowId;
                string eventDateTime;
                string loadDateTime;
                string expiryDateTime;
                string changeDataIndicator;
                string recordSource;
                string etlProcessId;
                string etlUpdateProcessId;
                string logicalDeleteAttribute;
                string tableNamingLocation;
                string keyNamingLocation;
                string recordChecksum;
                string currentRecordIndicator;
                string alternativeRecordSource;
                string alternativeHubLoadDateTime;
                string alternativeSatelliteLoadDateTime;
                string alternativeRecordSourceFunction;
                string alternativeHubLoadDateTimeFunction;
                string alternativeSatelliteLoadDateTimeFunction;


                // Update the values using the DIRECT information
                if (checkBoxDIRECT.Checked)
                {
                    persistentStagingAreaPrefix = "HSTG";
                    keyIdentifier = "SK";

                    sourceRowId                              = "OMD_SOURCE_ROW_ID";
                    eventDateTime                            = "OMD_EVENT_DATETIME";
                    loadDateTime                             = "OMD_INSERT_DATETIME";
                    expiryDateTime                           = "OMD_EXPIRY_DATETIME";
                    changeDataIndicator                      = "OMD_CDC_OPERATION";
                    recordSource                             = "OMD_RECORD_SOURCE";
                    etlProcessId                             = "OMD_INSERT_MODULE_INSTANCE_ID";
                    etlUpdateProcessId                       = "OMD_UPDATE_MODULE_INSTANCE_ID";
                    logicalDeleteAttribute                   = "OMD_DELETED_RECORD_INDICATOR";
                    tableNamingLocation                      = "Prefix";
                    keyNamingLocation                        = "Suffix";
                    recordChecksum                           = "OMD_HASH_FULL_RECORD";
                    currentRecordIndicator                   = "OMD_CURRENT_RECORD_INDICATOR";
                    alternativeRecordSource                  = "OMD_RECORD_SOURCE_ID";
                    alternativeHubLoadDateTime               = "OMD_FIRST_SEEN_DATETIME";
                    alternativeSatelliteLoadDateTime         = "OMD_EFFECTIVE_DATETIME";
                    alternativeRecordSourceFunction          = "True";
                    alternativeHubLoadDateTimeFunction       = "True";
                    alternativeSatelliteLoadDateTimeFunction = "True";
                }
                else  // Use the standard (profiler) sample
                {
                    persistentStagingAreaPrefix = "PSA";
                    keyIdentifier = "HSH";

                    sourceRowId                              = "SOURCE_ROW_ID";
                    eventDateTime                            = "EVENT_DATETIME";
                    loadDateTime                             = "LOAD_DATETIME";
                    expiryDateTime                           = "LOAD_END_DATETIME";
                    changeDataIndicator                      = "CDC_OPERATION";
                    recordSource                             = "RECORD_SOURCE";
                    etlProcessId                             = "ETL_INSERT_RUN_ID";
                    etlUpdateProcessId                       = "ETL_UPDATE_RUN_ID";
                    logicalDeleteAttribute                   = "DELETED_RECORD_INDICATOR";
                    tableNamingLocation                      = "Prefix";
                    keyNamingLocation                        = "Suffix";
                    recordChecksum                           = "HASH_FULL_RECORD";
                    currentRecordIndicator                   = "CURRENT_RECORD_INDICATOR";
                    alternativeRecordSource                  = "N/A";
                    alternativeHubLoadDateTime               = "N/A";
                    alternativeSatelliteLoadDateTime         = "N/A";
                    alternativeRecordSourceFunction          = "False";
                    alternativeHubLoadDateTimeFunction       = "False";
                    alternativeSatelliteLoadDateTimeFunction = "False";
                }

                //ConfigurationSettings.MetadataRepositoryType = metadataRepositoryType;

                ConfigurationSettings.StgTablePrefixValue = stagingAreaPrefix;
                ConfigurationSettings.PsaTablePrefixValue = persistentStagingAreaPrefix;

                ConfigurationSettings.HubTablePrefixValue  = hubTablePrefix;
                ConfigurationSettings.SatTablePrefixValue  = satTablePrefix;
                ConfigurationSettings.LinkTablePrefixValue = linkTablePrefix;
                ConfigurationSettings.LsatTablePrefixValue = linkSatTablePrefix;
                ConfigurationSettings.DwhKeyIdentifier     = keyIdentifier;
                ConfigurationSettings.PsaKeyLocation       = psaKeyLocation;
                ConfigurationSettings.TableNamingLocation  = tableNamingLocation;
                ConfigurationSettings.KeyNamingLocation    = keyNamingLocation;

                ConfigurationSettings.EventDateTimeAttribute                          = eventDateTime;
                ConfigurationSettings.LoadDateTimeAttribute                           = loadDateTime;
                ConfigurationSettings.ExpiryDateTimeAttribute                         = expiryDateTime;
                ConfigurationSettings.ChangeDataCaptureAttribute                      = changeDataIndicator;
                ConfigurationSettings.RecordSourceAttribute                           = recordSource;
                ConfigurationSettings.EtlProcessAttribute                             = etlProcessId;
                ConfigurationSettings.EtlProcessUpdateAttribute                       = etlUpdateProcessId;
                ConfigurationSettings.RowIdAttribute                                  = sourceRowId;
                ConfigurationSettings.RecordChecksumAttribute                         = recordChecksum;
                ConfigurationSettings.CurrentRowAttribute                             = currentRecordIndicator;
                ConfigurationSettings.LogicalDeleteAttribute                          = logicalDeleteAttribute;
                ConfigurationSettings.EnableAlternativeRecordSourceAttribute          = alternativeRecordSourceFunction;
                ConfigurationSettings.AlternativeRecordSourceAttribute                = alternativeRecordSource;
                ConfigurationSettings.EnableAlternativeLoadDateTimeAttribute          = alternativeHubLoadDateTimeFunction;
                ConfigurationSettings.AlternativeLoadDateTimeAttribute                = alternativeHubLoadDateTime;
                ConfigurationSettings.EnableAlternativeSatelliteLoadDateTimeAttribute = alternativeSatelliteLoadDateTimeFunction;
                ConfigurationSettings.AlternativeSatelliteLoadDateTimeAttribute       = alternativeSatelliteLoadDateTime;

                EnvironmentConfiguration.SaveConfigurationFile();
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        ///    Commit the changes to memory, save the configuration settings to disk and create a backup
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void saveConfigurationFileToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string workingEnvironment = "";

            if (radioButtonDevelopment.Checked)
            {
                workingEnvironment = "Development";
            }
            else if (radioButtonProduction.Checked)
            {
                workingEnvironment = "Production";
            }
            else
            {
                MessageBox.Show("An error occurred: neither the Development or Production radiobutton was selected.", "An issue has been encountered", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            // Update the root path file, part of the core solution to be able to store the config and output path
            var rootPathConfigurationFile = new StringBuilder();

            rootPathConfigurationFile.AppendLine("/* TEAM File Path Settings */");
            rootPathConfigurationFile.AppendLine("/* Saved at " + DateTime.Now + " */");
            rootPathConfigurationFile.AppendLine("ConfigurationPath|" + textBoxConfigurationPath.Text + "");
            rootPathConfigurationFile.AppendLine("OutputPath|" + textBoxOutputPath.Text + "");
            rootPathConfigurationFile.AppendLine("WorkingEnvironment|" + workingEnvironment + "");
            rootPathConfigurationFile.AppendLine("/* End of file */");

            using (var outfile = new StreamWriter(GlobalParameters.RootPath + GlobalParameters.PathFileName + GlobalParameters.FileExtension))
            {
                outfile.Write(rootPathConfigurationFile.ToString());
                outfile.Close();
            }

            // Update the paths in memory
            GlobalParameters.OutputPath        = textBoxOutputPath.Text;
            GlobalParameters.ConfigurationPath = textBoxConfigurationPath.Text;

            GlobalParameters.WorkingEnvironment = workingEnvironment;

            // Make sure the new paths as updated are available upon save for backup etc.
            EnvironmentConfiguration.InitialiseConfigurationPath();

            // Create a file backup for the configuration file
            try
            {
                EnvironmentConfiguration.CreateEnvironmentConfigurationBackupFile();
                richTextBoxInformation.Text = "A backup of the current configuration was made at " + DateTime.Now + " in " + textBoxConfigurationPath.Text + ".";
            }
            catch (Exception)
            {
                richTextBoxInformation.Text = "TEAM was unable to create a backup of the configuration file.";
            }


            // Update the in-memory variables for use throughout the application, to commit the saved changes for runtime use.
            // This is needed before saving to disk, as the EnvironmentConfiguration Class retrieves the values from memory.
            UpdateConfigurationInMemory();


            // Save the information
            EnvironmentConfiguration.SaveConfigurationFile();
            parentFormMain.RevalidateFlag = true;
        }
Ejemplo n.º 7
0
        /// <summary>
        ///    This method will load an existing configuration file and display the values on the form, or create a new dummy one if not available
        /// </summary>
        /// <param name="chosenFile"></param>
        private void LocalInitialiseConnections(string chosenFile)
        {
            // If the config file does not exist yet, create it by calling the EnvironmentConfiguration Class
            if (!File.Exists(chosenFile))
            {
                var newEnvironmentConfiguration = new EnvironmentConfiguration();
                newEnvironmentConfiguration.CreateDummyEnvironmentConfiguration(chosenFile);
            }


            // Open the configuration file
            var configList = new Dictionary <string, string>();
            var fs         = new FileStream(chosenFile, FileMode.Open, FileAccess.Read);
            var sr         = new StreamReader(fs);

            try
            {
                string textline;
                while ((textline = sr.ReadLine()) != null)
                {
                    if (textline.IndexOf(@"/*", StringComparison.Ordinal) == -1 && textline.Trim() != "")
                    {
                        var line = textline.Split('|');
                        configList.Add(line[0], line[1]);
                    }
                }

                sr.Close();
                fs.Close();


                //DWH settings
                textBoxHubTablePrefix.Text             = configList["HubTablePrefix"];
                textBoxSatPrefix.Text                  = configList["SatTablePrefix"];
                textBoxLinkTablePrefix.Text            = configList["LinkTablePrefix"];
                textBoxLinkSatPrefix.Text              = configList["LinkSatTablePrefix"];
                textBoxDWHKeyIdentifier.Text           = configList["KeyIdentifier"];
                textBoxSchemaName.Text                 = configList["SchemaName"];
                textBoxEventDateTime.Text              = configList["EventDateTimeStamp"];
                textBoxLDST.Text                       = configList["LoadDateTimeStamp"];
                textBoxExpiryDateTimeName.Text         = configList["ExpiryDateTimeStamp"];
                textBoxChangeDataCaptureIndicator.Text = configList["ChangeDataIndicator"];
                textBoxRecordSource.Text               = configList["RecordSourceAttribute"];
                textBoxETLProcessID.Text               = configList["ETLProcessID"];
                textBoxETLUpdateProcessID.Text         = configList["ETLUpdateProcessID"];
                textBoxStagingAreaPrefix.Text          = configList["StagingAreaPrefix"];
                textBoxPSAPrefix.Text                  = configList["PersistentStagingAreaPrefix"];
                textBoxSourceRowId.Text                = configList["RowID"];

                // Databases
                textBoxSourceDatabase.Text       = configList["SourceDatabase"];
                textBoxStagingDatabase.Text      = configList["StagingDatabase"];
                textBoxPSADatabase.Text          = configList["PersistentStagingDatabase"];
                textBoxIntegrationDatabase.Text  = configList["IntegrationDatabase"];
                textBoxPresentationDatabase.Text = configList["PresentationDatabase"];
                textBoxMetadataDatabaseName.Text = configList["MetadataDatabase"];

                textBoxRecordChecksum.Text                    = configList["RecordChecksum"];
                textBoxCurrentRecordAttributeName.Text        = configList["CurrentRecordAttribute"];
                textBoxAlternativeRecordSource.Text           = configList["AlternativeRecordSource"];
                textBoxHubAlternativeLDTSAttribute.Text       = configList["AlternativeHubLDTS"];
                textBoxSatelliteAlternativeLDTSAttribute.Text = configList["AlternativeSatelliteLDTS"];
                textBoxLogicalDeleteAttributeName.Text        = configList["LogicalDeleteAttribute"];

                // Servers (instances)
                textBoxPhysicalModelServerName.Text = configList["PhysicalModelServerName"];
                textBoxMetadataServerName.Text      = configList["MetadataServerName"];

                //Checkbox setting based on loaded configuration
                CheckBox myConfigurationCheckBox;

                if (configList["AlternativeRecordSourceFunction"] == "False")
                {
                    myConfigurationCheckBox                = checkBoxAlternativeRecordSource;
                    myConfigurationCheckBox.Checked        = false;
                    textBoxAlternativeRecordSource.Enabled = false;
                }
                else
                {
                    myConfigurationCheckBox         = checkBoxAlternativeRecordSource;
                    myConfigurationCheckBox.Checked = true;
                }

                if (configList["AlternativeHubLDTSFunction"] == "False")
                {
                    myConfigurationCheckBox                    = checkBoxAlternativeHubLDTS;
                    myConfigurationCheckBox.Checked            = false;
                    textBoxHubAlternativeLDTSAttribute.Enabled = false;
                }
                else
                {
                    myConfigurationCheckBox         = checkBoxAlternativeHubLDTS;
                    myConfigurationCheckBox.Checked = true;
                }

                if (configList["AlternativeSatelliteLDTSFunction"] == "False")
                {
                    myConfigurationCheckBox         = checkBoxAlternativeSatLDTS;
                    myConfigurationCheckBox.Checked = false;
                    textBoxSatelliteAlternativeLDTSAttribute.Enabled = false;
                }
                else
                {
                    myConfigurationCheckBox         = checkBoxAlternativeSatLDTS;
                    myConfigurationCheckBox.Checked = true;
                }


                //Radiobutton setting for prefix / suffix
                RadioButton myTableRadioButton;

                if (configList["TableNamingLocation"] == "Prefix")
                {
                    myTableRadioButton         = tablePrefixRadiobutton;
                    myTableRadioButton.Checked = true;
                }
                else
                {
                    myTableRadioButton         = tableSuffixRadiobutton;
                    myTableRadioButton.Checked = true;
                }

                //Radiobutton settings for on key location
                RadioButton myKeyRadioButton;

                if (configList["KeyNamingLocation"] == "Prefix")
                {
                    myKeyRadioButton         = keyPrefixRadiobutton;
                    myKeyRadioButton.Checked = true;
                }
                else
                {
                    myKeyRadioButton         = keySuffixRadiobutton;
                    myKeyRadioButton.Checked = true;
                }

                //Radiobutton settings for PSA Natural Key determination
                RadioButton myPsaBusinessKeyLocation;

                if (configList["PSAKeyLocation"] == "PrimaryKey")
                {
                    myPsaBusinessKeyLocation         = radioButtonPSABusinessKeyPK;
                    myPsaBusinessKeyLocation.Checked = true;
                }
                else
                {
                    myPsaBusinessKeyLocation         = radioButtonPSABusinessKeyIndex;
                    myPsaBusinessKeyLocation.Checked = true;
                }

                //Radiobutton settings for repository type
                RadioButton myMetadatarepositoryType;

                if (configList["metadataRepositoryType"] == "JSON")
                {
                    myMetadatarepositoryType         = radioButtonJSON;
                    myMetadatarepositoryType.Checked = true;
                }
                else
                {
                    myMetadatarepositoryType         = radioButtonSQLServer;
                    myMetadatarepositoryType.Checked = true;
                }


                // Authentication approach for metadata
                var myRadioButtonMetadataSspi  = radioButtonMetadataSSPI;
                var myRadioButtonMetadataNamed = radioButtonMetadataNamed;

                if (configList["MetadataSSPI"] == "True")
                {
                    myRadioButtonMetadataSspi.Checked  = true;
                    myRadioButtonMetadataNamed.Checked = false;
                    groupBoxMetadataNamedUser.Visible  = false;
                }
                else
                {
                    myRadioButtonMetadataSspi.Checked = false;
                }

                if (configList["MetadataNamed"] == "True")
                {
                    myRadioButtonMetadataNamed.Checked = true;
                    myRadioButtonMetadataSspi.Checked  = false;
                    groupBoxMetadataNamedUser.Visible  = true;
                }
                else
                {
                    myRadioButtonMetadataNamed.Checked = false;
                    groupBoxMetadataNamedUser.Visible  = false;
                }

                // Authentication approach for the physical model
                var myRadioButtonPhysicalModelSspi  = radioButtonPhysicalModelSSPI;
                var myRadioButtonPhysicalModelNamed = radioButtonPhysicalModelNamed;

                if (configList["PhysicalModelSSPI"] == "True")
                {
                    myRadioButtonPhysicalModelSspi.Checked  = true;
                    myRadioButtonPhysicalModelNamed.Checked = false;
                    groupBoxMetadataNamedUser.Visible       = false;
                }
                else
                {
                    myRadioButtonPhysicalModelSspi.Checked = false;
                }

                if (configList["PhysicalModelNamed"] == "True")
                {
                    myRadioButtonPhysicalModelNamed.Checked = true;
                    myRadioButtonPhysicalModelSspi.Checked  = false;
                    groupBoxPhysicalModelNamedUser.Visible  = true;
                }
                else
                {
                    myRadioButtonPhysicalModelNamed.Checked = false;
                    groupBoxPhysicalModelNamedUser.Visible  = false;
                }

                textBoxMetadataUserName.Text      = configList["MetadataUserName"];
                textBoxMetadataPassword.Text      = configList["MetadataPassword"];
                textBoxPhysicalModelUserName.Text = configList["PhysicalModelUserName"];
                textBoxPhysicalModelPassword.Text = configList["PhysicalModelPassword"];

                // Also commit the values to memory
                UpdateConfigurationInMemory();

                richTextBoxInformation.AppendText(@"The file " + chosenFile + " was uploaded successfully. \r\n\r\n");
            }
            catch (Exception ex)
            {
                richTextBoxInformation.AppendText("\r\n\r\nAn error occured while loading the configuration file. The original error is: '" + ex.Message + "'");
            }
        }