public static ErrorType GetErrorType(string exceptionType, string opCoCode, string policyName) { ErrorType errorType = null; //read the config details from file or other source (db) to find the error handling section //find the configuration source section ConfigurationSourceSection section = ConfigurationSourceSection.GetConfigurationSourceSection(); //find the selected source where our config sections are stored string selectedSource = section.SelectedSource; NameTypeConfigurationElementCollection <ConfigurationSourceElement> sources = section.Sources; ConfigurationSourceElement element = sources.Get(selectedSource); if (element is SqlConfigurationSourceElement) { SqlConfigurationSourceElement sqlElement = element as SqlConfigurationSourceElement; SqlConfigurationSource configurationSource = new SqlConfigurationSource(sqlElement.ConnectionString, sqlElement.GetStoredProcedure, sqlElement.SetStoredProcedure, sqlElement.RefreshStoredProcedure, sqlElement.RemoveStoredProcedure); //find all the exception policies NamedElementCollection <ExceptionPolicyData> policies = ExceptionHandlingSettings.GetExceptionHandlingSettings(configurationSource).ExceptionPolicies; //find just the one specified if (policies != null) { ExceptionPolicyData specifiedPolicy = policies.Get(policyName); if (specifiedPolicy != null) { specifiedPolicy.ExceptionTypes.ForEach(delegate(ExceptionTypeData currentExceptionType) { if (currentExceptionType.Type.ToString() == exceptionType) { errorType = PopulateErrorType(policyName, opCoCode, currentExceptionType); } } ); } } } return(errorType); }
protected virtual IConfigurationSource DoSetup() { if (source == null) { if (ConfigurationSourceFileName == null) { source = ConfigurationSourceFactory.Create(); } else { WriteEmbeddedFileToDisk(ResourceAssembly, ConfigurationSourceFileName); if (!UseMultipleSources) { source = new FileConfigurationSource(ConfigurationSourceFileName); } else { ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap(); fileMap.ExeConfigFilename = ConfigurationSourceFileName; System.Configuration.Configuration configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None); // Added support for multiple sources ConfigurationSourceSection configurationSourceSection = configuration.GetSection(ConfigurationSourceSection.SectionName) as ConfigurationSourceSection; if (configurationSourceSection != null) { string systemSourceName = configurationSourceSection.SelectedSource; if (!string.IsNullOrEmpty(systemSourceName)) { ConfigurationSourceElement objectConfiguration = configurationSourceSection.Sources.Get(systemSourceName); source = objectConfiguration.CreateSource(); } } } } } return(source); }
private void CreateConfigurationSourceElement(ConfigurationSourceSectionNode node, ConfigurationSourceElement configurationSourceElement) { ConfigurationNode sourceNode = NodeCreationService.CreateNodeByDataType(configurationSourceElement.GetType(), new object[] { configurationSourceElement }); if (null == sourceNode) { LogNodeMapError(node, configurationSourceElement.GetType()); return; } if (configurationSourceSection.SelectedSource == configurationSourceElement.Name) { defaultNode = (ConfigurationSourceElementNode)sourceNode; } node.AddNode(sourceNode); }