Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }