/// <summary>
        /// Builds an instance of the concrete subtype of <see cref="T:Microsoft.Practices.EnterpriseLibrary.Data.Database"/>
        /// the receiver knows how to build, based on the provided connection string and any configuration information
        /// that might be contained by the <paramref name="configurationSource"/>.
        /// </summary>
        /// <param name="name">The name for the new database instance.</param>
        /// <param name="connectionStringSettings">The connection string for the new database instance.</param>
        /// <param name="configurationSource">The source for any additional configuration information.</param>
        /// <returns>
        /// The new database instance.
        /// </returns>
        public Database Assemble(string name, ConnectionStringSettings connectionStringSettings,
                                 IConfigurationSource configurationSource)
        {
            if (IsDebugEnabled)
            {
                log.Debug("EnterpriseLibrary용 OracleProvider 인스턴스를 빌드합니다... name=[{0}]", name);
            }

            var settings = OracleConnectionSettings.GetSettings(configurationSource);

            if (settings != null)
            {
                var data = settings.OracleConnectionsData.Get(name);

                if (data != null)
                {
                    var packages = new IOraclePackage[data.Packages.Count];
                    var num      = 0;

                    foreach (var package in data.Packages)
                    {
                        packages[num++] = package;
                    }
                    return(new OracleDatabase(connectionStringSettings.ConnectionString));
                }
            }

            if (IsDebugEnabled)
            {
                log.Debug("OracleDatabase를 생성합니다. connectionString=[{0}]", connectionStringSettings.ConnectionString);
            }

            return(new OracleDatabase(connectionStringSettings.ConnectionString));
        }
        /// <summary>
        /// Builds an instance of the concrete subtype of <see cref="T:Microsoft.Practices.EnterpriseLibrary.Data.Database"/> the receiver knows how to build, based on
        /// the provided connection string and any configuration information that might be contained by the
        /// <paramref name="configurationSource"/>.
        /// </summary>
        /// <param name="name">The name for the new database instance.</param>
        /// <param name="connectionStringSettings">The connection string for the new database instance.</param>
        /// <param name="configurationSource">The source for any additional configuration information.</param>
        /// <returns>The new database instance.</returns>
        public Database Assemble(string name, ConnectionStringSettings connectionStringSettings,
                                 IConfigurationSource configurationSource)
        {
            if (log.IsInfoEnabled)
            {
                log.Info("OdpNetDatabase 인스턴스를 생성하기 위해 환경설정 정보를 읽습니다..." +
                         "name=[{0}], connectionStringSettings=[{1}], configurationSource=[{2}]",
                         name, connectionStringSettings.ConnectionString, configurationSource);
            }

            var connectionSettings = OracleConnectionSettings.GetSettings(configurationSource);

            if (connectionSettings != null)
            {
                OracleConnectionData oraConnData = connectionSettings.OracleConnectionsData.Get(name);

                if (oraConnData != null)
                {
                    var packages = oraConnData.Packages.Cast <IOraclePackage>().ToArray();
                    return(new OdpNetDatabase(connectionStringSettings.ConnectionString, packages));
                }
            }

            return(new OdpNetDatabase(connectionStringSettings.ConnectionString));
        }
        void IContainerPolicyCreator.CreatePolicies(
            IPolicyList policyList,
            string instanceName,
            ConfigurationElement configurationObject,
            IConfigurationSource configurationSource)
        {
            ConnectionStringSettings castConfigurationObject = (ConnectionStringSettings)configurationObject;
            IList <IOraclePackage>   packages = new IOraclePackage[0];
            OracleConnectionSettings oracleConnectionSettings = OracleConnectionSettings.GetSettings(configurationSource);

            if (oracleConnectionSettings != null)
            {
                OracleConnectionData oracleConnectionData
                    = oracleConnectionSettings.OracleConnectionsData.Get(castConfigurationObject.Name);
                if (oracleConnectionData != null)
                {
                    packages = new List <IOraclePackage>(from op in oracleConnectionData.Packages select(IOraclePackage) op);
                }
            }
            new PolicyBuilder <OracleDatabase, ConnectionStringSettings>(
                instanceName,
                castConfigurationObject,
                c => new OracleDatabase(c.ConnectionString, packages))
            .AddPoliciesToPolicyList(policyList);
        }
Esempio n. 4
0
        public OracleOptions()
        {
            _lazyConnectionSettings = new Lazy <OracleConnectionSettings>(() =>
            {
                if (_relationalOptions.Connection != null)
                {
                    return(OracleConnectionSettings.GetSettings(_relationalOptions.Connection));
                }

                return(OracleConnectionSettings.GetSettings(_relationalOptions.ConnectionString));
            }, LazyThreadSafetyMode.PublicationOnly);
        }
Esempio n. 5
0
        public Database Assemble(string name, ConnectionStringSettings connectionStringSettings, IConfigurationSource configurationSource)
        {
            OracleConnectionSettings oracleConnectionSettings = OracleConnectionSettings.GetSettings(configurationSource);

            if (oracleConnectionSettings != null)
            {
                OracleConnectionData oracleConnectionData = oracleConnectionSettings.OracleConnectionsData.Get(name);
                if (oracleConnectionData != null)
                {
                    IOraclePackage[] packages = new IOraclePackage[oracleConnectionData.Packages.Count];
                    int i = 0;
                    foreach (IOraclePackage package in oracleConnectionData.Packages)
                    {
                        packages[i++] = package;
                    }
                    return(new OracleDatabase(connectionStringSettings.ConnectionString, packages));
                }
            }
            return(new OracleDatabase(connectionStringSettings.ConnectionString));
        }