Example #1
0
        /// <summary>
        /// Creates a new open database connection.
        /// </summary>
        public static WrappedDbConnection CreateConnection(DbConnectionParameter parameter)
        {
            var factory    = GetFactory(parameter.Provider);
            var connection = factory.CreateConnection(parameter);

            return(connection);
        }
        public void GetMruDbConnectionParameterTest()
        {
            var datasources1 = new Datasources()
            {
                Provider = ProviderType.Oracle
            };

            var datasource1_1 = new Datasource()
            {
                Address = "datasource1_1"
            };
            var datasourcesList1 = new List <Datasource>();

            datasourcesList1.Add(datasource1_1);
            datasources1.Datasource = datasourcesList1;

            var datasources2 = new Datasources();

            datasources2.Provider = ProviderType.Sybase;

            var history = new MruConnections()
            {
                Datasources = new List <Datasources>()
            };

            history.Datasources.Add(datasources1);
            history.Datasources.Add(datasources2);


            DbConnectionParameter murParameter = MruDbConnectionParameterAdapter.GetMruDbConnectionParameter(history);

            Assert.AreEqual(datasources1.Provider, murParameter.Provider);
            Assert.AreEqual(datasource1_1.Address, murParameter.DatasourceAddress);
        }
Example #3
0
 /// <summary>
 /// Copy constructor.
 /// </summary>
 /// <param name="that">The parameters to copy.</param>
 public DbConnectionParameter(DbConnectionParameter that)
 {
     Provider           = that.Provider;
     DatasourceAddress  = that.DatasourceAddress;
     DatasourceComment  = that.DatasourceComment;
     Catalog            = that.Catalog;
     UserId             = that.UserId;
     Password           = that.Password;
     IntegratedSecurity = that.IntegratedSecurity;
     Timeout            = that.Timeout;
     ApplicationName    = that.ApplicationName;
     this.traceSwitch   = that.traceSwitch;
 }
        public void SetMruDbConnectionParameterTest1()
        {
            MruConnections        mruConnections = new MruConnections();
            DbConnectionParameter parameter      = new DbConnectionParameter();

            parameter.Provider          = ProviderType.MsSql;
            parameter.DatasourceAddress = "server";
            parameter.Catalog           = "catalog";
            parameter.UserId            = "test";
            parameter.Password          = "******";

            MruDbConnectionParameterAdapter.SetMruDbConnectionParameter(mruConnections, parameter);

            DbConnectionParameter mruParameter = MruDbConnectionParameterAdapter.GetMruDbConnectionParameter(mruConnections);

            Assert.AreEqual(parameter, mruParameter);
        }
        /// <summary>
        /// Get the moust recently used connection parameter stored in the murConnection list.
        /// </summary>
        /// <param name="mruConnections">The most recently used database connection.</param>
        /// <returns>The first entry in the list.</returns>
        public static DbConnectionParameter GetMruDbConnectionParameter(MruConnections mruConnections)
        {
            DbConnectionParameter result = new DbConnectionParameter();

            if (mruConnections.Datasources == null || mruConnections.Datasources.Count == 0)
            {
                return(result);
            }

            Datasources mruDatasources = mruConnections.Datasources[0];

            result.Provider = mruDatasources.Provider;

            if (mruDatasources.Datasource == null || mruDatasources.Datasource.Count == 0)
            {
                return(result);
            }

            Datasource mruDatasource = mruDatasources.Datasource[0];

            result.DatasourceAddress = mruDatasource.Address;
            result.DatasourcePort    = mruDatasource.Port;
            result.DatasourceComment = mruDatasource.Comment;

            if (mruDatasource.Catalogs != null && mruDatasource.Catalogs.Count != 0)
            {
                string mruCatalog = mruDatasource.Catalogs[0];
                result.Catalog = mruCatalog;
            }

            if (mruDatasource.Authentications != null && mruDatasource.Authentications.Count != 0)
            {
                Authentication mruAuthentication = mruDatasource.Authentications[0];
                result.IntegratedSecurity = mruAuthentication.Integrated;
                result.UserId             = mruAuthentication.UserId;
                result.Password           = mruAuthentication.Password;
            }

            return(result);
        }
Example #6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="DbConnection"/> class.
 /// </summary>
 /// <param name="cmdArgs">The object holding the command line arguments of the program instance.</param>
 internal WrappedDbConnection(DbConnectionParameter parameter)
 {
     this.parameter = parameter;
 }
Example #7
0
 /// <summary>
 /// Creates the connection using the parameters in the specified command line arguments.
 /// </summary>
 /// <remarks>
 /// This method will be called to create the ADO connection object when the database
 /// is accessed for the first time.
 /// </remarks>
 /// <param name="cmdArgs">The command line arguments.</param>
 /// <returns>The method has to return an open database connection object.</returns>
 protected abstract IDbConnection CreateAdoConnection(DbConnectionParameter csqlOptions);
        /// <summary>
        /// Update the most recently used connection store with the latest parameters used.
        /// </summary>
        /// <param name="mruConnections">The most recently used connection store.</param>
        /// <param name="mruParameter">The most recently connection parameter used.</param>
        /// <returns><c>true</c> if the store was update. <c>false</c> if the store is up to date.</returns>
        public static bool SetMruDbConnectionParameter(MruConnections mruConnections, DbConnectionParameter mruParameter)
        {
            if (mruParameter == null)
            {
                return(false);
            }

            DbConnectionParameter currentMruParameter = MruDbConnectionParameterAdapter.GetMruDbConnectionParameter(mruConnections);

            if (Object.Equals(currentMruParameter, mruParameter))
            {
                return(false);
            }

            DatasourcesList newMruDatasources = new DatasourcesList();

            if (mruParameter.Provider != ProviderType.Undefined)
            {
                Datasources newFirstDatasources = new Datasources()
                {
                    Provider = mruParameter.Provider
                };
                ProviderDataSources datasources = new ProviderDataSources(mruParameter.Provider);
                if (!String.IsNullOrEmpty(mruParameter.DatasourceAddress))
                {
                    Datasource newFirstDatasource = new Datasource()
                    {
                        Address = mruParameter.DatasourceAddress,
                        Comment = mruParameter.DatasourceComment
                    };
                    datasources.Add(newFirstDatasource);

                    AddCatalogs(newFirstDatasource, mruConnections, mruParameter);
                    AddAuthentications(newFirstDatasource, mruConnections, mruParameter);
                    AddDatasourcesFromMruList(datasources, mruConnections);
                }
                newFirstDatasources.Datasource = datasources;

                newMruDatasources.Add(newFirstDatasources);
            }

            // Add all previously used datasources
            IEnumerable <Datasources> otherDatasources = mruConnections.Datasources;

            foreach (Datasources mruDatasources in otherDatasources)
            {
                if (newMruDatasources.Count >= MaxMruEntries)
                {
                    break;
                }

                if (newMruDatasources.Contains(mruDatasources))
                {
                    continue;
                }

                newMruDatasources.Add(mruDatasources);
            }

            mruConnections.Datasources = newMruDatasources;

            return(true);
        }
        private static void AddAuthentications(Datasource datasource, MruConnections mruConnections, DbConnectionParameter mruParameter)
        {
            AuthenticationList authentications = new AuthenticationList();
            Authentication     authentication  = new Authentication()
            {
                Integrated = mruParameter.IntegratedSecurity,
                UserId     = mruParameter.UserId,
                Password   = mruParameter.Password
            };

            if (authentication.IsUsable)
            {
                authentications.Add(authentication);
            }
            AddAuthenticationsFromMruList(authentications, mruConnections, mruParameter.Provider, datasource);
            datasource.Authentications = authentications;
        }
        private static void AddCatalogs(Datasource datasource, MruConnections mruConnections, DbConnectionParameter mruParameter)
        {
            List <string> catalogs = new List <string>();

            catalogs.Add(mruParameter.Catalog ?? "");
            AddCatalogsFromMruList(catalogs, mruConnections, mruParameter.Provider, datasource);
            datasource.Catalogs = catalogs;
        }