Ejemplo n.º 1
0
        /// <summary>
        /// Deletes the specified provider if present.
        /// </summary>
        /// <param name="providerInfo">The provider.</param>
        public void Remove(DbProviderInfo providerInfo)
        {
            Argument.IsNotNull(() => providerInfo);

            var providerTable = GetProviderTable();

            var row = providerTable?.Rows.Cast <DataRow>()
                      .FirstOrDefault(o => o[2] is not null && o[2].ToString() == providerInfo.InvariantName);

            if (row is not null)
            {
                providerTable.Rows.Remove(row);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Adds the specified provider.
        /// </summary>
        /// <param name="providerInfo">The provider.</param>
        public void Add(DbProviderInfo providerInfo)
        {
            Argument.IsNotNull(() => providerInfo);

            var providerTable = GetProviderTable();

            if (providerTable is null)
            {
                return;
            }

            Remove(providerInfo);
            providerTable.Rows.Add(providerInfo.Name, providerInfo.Description, providerInfo.InvariantName, providerInfo.AssemblyQualifiedName);
        }
Ejemplo n.º 3
0
        protected virtual DbProviderInfo GetInfo()
        {
            if (_info is not null)
            {
                return(_info);
            }

            using (var dataTable = DbProviderFactories.GetFactoryClasses())
            {
                var infoRow = dataTable
                              .Rows.OfType <DataRow>()
                              .FirstOrDefault(x => x["InvariantName"]?.ToString() == ProviderInvariantName);

                if (infoRow is null)
                {
                    return(null);
                }

                _info = infoRow.ToDbProviderInfo();

                return(_info);
            }
        }
Ejemplo n.º 4
0
        public static DbProviderInfo ToDbProviderInfo(this DataRow row)
        {
            Argument.IsNotNull(() => row);

            var providerInfo = new DbProviderInfo
            {
                Name                  = row["Name"]?.ToString(),
                Description           = row["Description"]?.ToString(),
                InvariantName         = row["InvariantName"]?.ToString(),
                AssemblyQualifiedName = row["AssemblyQualifiedName"]?.ToString()
            };

            if (string.IsNullOrWhiteSpace(providerInfo.Name))
            {
                providerInfo.Name = row["InvariantName"]?.ToString();

                if (string.IsNullOrWhiteSpace(providerInfo.Name))
                {
                    providerInfo.Name = "- nameless -";
                }
            }

            return(providerInfo);
        }
        public static DbProvider GetProvider(this DbProviderInfo dbProviderInfo)
        {
            Argument.IsNotNull(() => dbProviderInfo);

            return(DbProvider.GetRegisteredProvider(dbProviderInfo.InvariantName));
        }
        public static DbConnectionString CreateConnectionString(this DbProviderInfo dbProviderInfo, string connectionString = null)
        {
            Argument.IsNotNull(() => dbProviderInfo);

            return(dbProviderInfo.GetProvider()?.CreateConnectionString(connectionString));
        }
Ejemplo n.º 7
0
        public static void UnregisterProvider(DbProviderInfo providerInfo)
        {
            Argument.IsNotNull(() => providerInfo);

            ProviderFactoryRepository.Remove(providerInfo);
        }