static MainSettings GetMainSettingsUsingConfiguration(TwoFilesConfiguration configuration, MainSettings currentSettings, WriteToLogDelegate writeToLog) { var resultProperties = new MainSettings(); resultProperties.LogFontSize = configuration.GetDecimalValue(ConfigurationParameters.LogFontSize, currentSettings.LogFontSize, writeToLog); resultProperties.TreeViewFontSize = configuration.GetDecimalValue(ConfigurationParameters.TreeViewFontSize, currentSettings.TreeViewFontSize, writeToLog); resultProperties.RetryCount = configuration.GetIntValue(ConfigurationParameters.RetryCountParameter, currentSettings.RetryCount, writeToLog); resultProperties.RetryTimeout = configuration.GetIntValue(ConfigurationParameters.RetryTimeoutParameter, currentSettings.RetryTimeout, writeToLog); resultProperties.ReceiveTimeout = configuration.GetIntValue(ConfigurationParameters.ReceiveTimeoutParameter, currentSettings.ReceiveTimeout, writeToLog); resultProperties.ServerTimeout = configuration.GetIntValue(ConfigurationParameters.ServerTimeoutParameter, currentSettings.ServerTimeout, writeToLog); resultProperties.PrefetchCount = configuration.GetIntValue(ConfigurationParameters.PrefetchCountParameter, currentSettings.PrefetchCount, writeToLog); resultProperties.TopCount = configuration.GetIntValue(ConfigurationParameters.TopParameter, currentSettings.TopCount, writeToLog); resultProperties.SenderThinkTime = configuration.GetIntValue (ConfigurationParameters.SenderThinkTimeParameter, currentSettings.SenderThinkTime, writeToLog); resultProperties.ReceiverThinkTime = configuration.GetIntValue (ConfigurationParameters.ReceiverThinkTimeParameter, currentSettings.ReceiverThinkTime, writeToLog); resultProperties.MonitorRefreshInterval = configuration.GetIntValue (ConfigurationParameters.MonitorRefreshIntervalParameter, currentSettings.MonitorRefreshInterval, writeToLog); resultProperties.ShowMessageCount = configuration.GetBoolValue (ConfigurationParameters.ShowMessageCountParameter, currentSettings.ShowMessageCount, writeToLog); resultProperties.UseAscii = configuration.GetBoolValue(ConfigurationParameters.UseAsciiParameter, currentSettings.UseAscii, writeToLog); resultProperties.SaveMessageToFile = configuration.GetBoolValue (ConfigurationParameters.SaveMessageToFileParameter, currentSettings.SaveMessageToFile, writeToLog); resultProperties.SavePropertiesToFile = configuration.GetBoolValue (ConfigurationParameters.SavePropertiesToFileParameter, currentSettings.SavePropertiesToFile, writeToLog); resultProperties.SaveCheckpointsToFile = configuration.GetBoolValue (ConfigurationParameters.SaveCheckpointsToFileParameter, currentSettings.SaveCheckpointsToFile, writeToLog); resultProperties.Label = configuration.GetStringValue(ConfigurationParameters.LabelParameter, MainSettings.DefaultLabel); MessageAndPropertiesHelper.GetMessageTextAndFile(configuration, out string messageText, out string messageFile); resultProperties.MessageText = messageText; resultProperties.MessageFile = messageFile; resultProperties.MessageContentType = configuration.GetStringValue(ConfigurationParameters.MessageContentTypeParameter, string.Empty); resultProperties.SelectedEntities = ConfigurationHelper.GetSelectedEntities(configuration); resultProperties.SelectedMessageCounts = ConfigurationHelper.GetSelectedMessageCounts(configuration); resultProperties.MessageBodyType = configuration.GetStringValue(ConfigurationParameters.MessageBodyType, BodyType.Stream.ToString()); resultProperties.ConnectivityMode = configuration.GetEnumValue (ConfigurationParameters.ConnectivityMode, currentSettings.ConnectivityMode, writeToLog); resultProperties.UseAmqpWebSockets = configuration.GetBoolValue (ConfigurationParameters.UseAmqpWebSockets, currentSettings.UseAmqpWebSockets, writeToLog); resultProperties.EncodingType = configuration.GetEnumValue (ConfigurationParameters.Encoding, currentSettings.EncodingType, writeToLog); resultProperties.DisableAccidentalDeletionPrevention = configuration.GetBoolValue (ConfigurationParameters.DisableAccidentalDeletionPrevention, currentSettings.DisableAccidentalDeletionPrevention, writeToLog); resultProperties.ProxyOverrideDefault = configuration.GetBoolValue(ConfigurationParameters.ProxyOverrideDefault, currentSettings.ProxyOverrideDefault, writeToLog); resultProperties.ProxyUseDefaultCredentials = configuration.GetBoolValue(ConfigurationParameters.ProxyUseDefaultCredentials, currentSettings.ProxyUseDefaultCredentials, writeToLog); resultProperties.ProxyBypassOnLocal = configuration.GetBoolValue(ConfigurationParameters.ProxyBypassOnLocal, currentSettings.ProxyBypassOnLocal, writeToLog); resultProperties.ProxyAddress = configuration.GetStringValue(ConfigurationParameters.ProxyAddress, string.Empty); resultProperties.ProxyBypassList = configuration.GetStringValue(ConfigurationParameters.ProxyBypassList, string.Empty); resultProperties.ProxyUserName = configuration.GetStringValue(ConfigurationParameters.ProxyUserName, string.Empty); resultProperties.ProxyPassword = configuration.GetStringValue(ConfigurationParameters.ProxyPassword, string.Empty); resultProperties.NodesColors = NodeColorInfo.ParseAll(configuration.GetStringValue(ConfigurationParameters.NodesColors, string.Empty)); return(resultProperties); }
void SaveSettings(ConfigFileUse configFileUse) { var defaultSettings = MainSettings.GetDefault(); var readSettings = ConfigurationHelper.GetMainProperties(configFileUse, defaultSettings, writeToLog: null); // Special case: if we have switched from user config file to application config file, // we still have to update that particular setting in the user config file, or it won't // persist through program restart. if (originalConfigFileUse != ConfigFileUse.ApplicationConfig && configFileUse == ConfigFileUse.ApplicationConfig) { var userConfiguration = TwoFilesConfiguration.Create(ConfigFileUse.UserConfig); userConfiguration.SetValue(ConfigurationParameters.ConfigurationConfigFileParameter, configFileUse); userConfiguration.Save(); } var configuration = TwoFilesConfiguration.Create(configFileUse); configuration.SetValue(ConfigurationParameters.ConfigurationConfigFileParameter, configFileUse); SaveSetting(configuration, readSettings, ConfigurationParameters.LogFontSize, MainSettings.LogFontSize); SaveSetting(configuration, readSettings, ConfigurationParameters.TreeViewFontSize, MainSettings.TreeViewFontSize); SaveSetting(configuration, readSettings, ConfigurationParameters.ShowMessageCountParameter, MainSettings.ShowMessageCount); SaveSetting(configuration, readSettings, ConfigurationParameters.SaveMessageToFileParameter, MainSettings.SaveMessageToFile); SaveSetting(configuration, readSettings, ConfigurationParameters.UseAsciiParameter, MainSettings.UseAscii); SaveSetting(configuration, readSettings, ConfigurationParameters.SavePropertiesToFileParameter, MainSettings.SavePropertiesToFile); SaveSetting(configuration, readSettings, ConfigurationParameters.SaveCheckpointsToFileParameter, MainSettings.SaveCheckpointsToFile); SaveSetting(configuration, readSettings, ConfigurationParameters.RetryCountParameter, MainSettings.RetryCount); SaveSetting(configuration, readSettings, ConfigurationParameters.RetryTimeoutParameter, MainSettings.RetryTimeout); SaveSetting(configuration, readSettings, ConfigurationParameters.TopParameter, MainSettings.TopCount); SaveSetting(configuration, readSettings, ConfigurationParameters.ReceiveTimeoutParameter, MainSettings.ReceiveTimeout); SaveSetting(configuration, readSettings, ConfigurationParameters.ServerTimeoutParameter, MainSettings.ServerTimeout); SaveSetting(configuration, readSettings, ConfigurationParameters.SenderThinkTimeParameter, MainSettings.SenderThinkTime); SaveSetting(configuration, readSettings, ConfigurationParameters.ReceiverThinkTimeParameter, MainSettings.ReceiverThinkTime); SaveSetting(configuration, readSettings, ConfigurationParameters.MonitorRefreshIntervalParameter, MainSettings.MonitorRefreshInterval); SaveSetting(configuration, readSettings, ConfigurationParameters.PrefetchCountParameter, MainSettings.PrefetchCount); SaveSetting(configuration, readSettings, ConfigurationParameters.LabelParameter, MainSettings.Label); SaveSetting(configuration, readSettings, ConfigurationParameters.MessageParameter, MainSettings.MessageText); SaveSetting(configuration, readSettings, ConfigurationParameters.FileParameter, MainSettings.MessageFile); SaveSetting(configuration, readSettings, ConfigurationParameters.MessageContentTypeParameter, MainSettings.MessageContentType); SaveSetting(configuration, readSettings, ConfigurationParameters.ConnectivityMode, MainSettings.ConnectivityMode); SaveSetting(configuration, readSettings, ConfigurationParameters.UseAmqpWebSockets, MainSettings.UseAmqpWebSockets); SaveSetting(configuration, readSettings, ConfigurationParameters.Encoding, MainSettings.EncodingType); SaveListSetting(configuration, readSettings, ConfigurationParameters.SelectedEntitiesParameter, MainSettings.SelectedEntities); SaveListSetting(configuration, readSettings, ConfigurationParameters.SelectedMessageCountsParameter, MainSettings.SelectedMessageCounts); SaveSetting(configuration, readSettings, ConfigurationParameters.MessageBodyType, MainSettings.MessageBodyType); SaveSetting(configuration, readSettings, ConfigurationParameters.DisableAccidentalDeletionPrevention, MainSettings.DisableAccidentalDeletionPrevention); SaveSetting(configuration, readSettings, ConfigurationParameters.ProxyOverrideDefault, MainSettings.ProxyOverrideDefault); SaveSetting(configuration, readSettings, ConfigurationParameters.ProxyAddress, MainSettings.ProxyAddress); SaveSetting(configuration, readSettings, ConfigurationParameters.ProxyBypassList, MainSettings.ProxyBypassList); SaveSetting(configuration, readSettings, ConfigurationParameters.ProxyBypassOnLocal, MainSettings.ProxyBypassOnLocal); SaveSetting(configuration, readSettings, ConfigurationParameters.ProxyUseDefaultCredentials, MainSettings.ProxyUseDefaultCredentials); SaveSetting(configuration, readSettings, ConfigurationParameters.ProxyUserName, MainSettings.ProxyUserName); SaveSetting(configuration, readSettings, ConfigurationParameters.ProxyPassword, MainSettings.ProxyPassword); SaveSetting(configuration, readSettings, ConfigurationParameters.NodesColors, NodeColorInfo.FormatAll(MainSettings.NodesColors)); configuration.Save(); }