Esempio n. 1
0
        // POST: Service/DbSources/Test
        public DatabaseValidationResult Test(string args, Guid workspaceId, Guid dataListId)
        {
            var result = new DatabaseValidationResult
            {
                IsValid      = false,
                ErrorMessage = "Unknown connection type."
            };

            try
            {
                var dbSourceDetails = JsonConvert.DeserializeObject <DbSource>(args);
                switch (dbSourceDetails.ResourceType)
                {
                case ResourceType.DbSource:
                    result.ErrorMessage = null;
                    result = DoDatabaseValidation(dbSourceDetails);
                    break;
                }
            }
            catch (Exception ex)
            {
                RaiseError(ex);
                result.ErrorMessage = ex.Message;
            }
            return(result);
        }
Esempio n. 2
0
        private static void ShowFailedConnectionTestMessage(DatabaseValidationResult connectionResult)
        {
            string message = string.Format("Test database failed.\r\nReason:{0}", connectionResult.ErroMessage);

            //if (connectionResult.IsMinimalVersion)
            //{
            //    message += "\r\n\r\nThe specified database does include a versions table.\r\n" +
            //               "Change the name of the database and click 'Create New' to create a new database on the server, " +
            //               "or just hit 'Create New' to deploy into this existing database.";
            //}
            MessageBox.Show(message, MESSAGE_HEADER, MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
Esempio n. 3
0
        protected virtual DatabaseValidationResult DoDatabaseValidation(DbSource dbSourceDetails)
        {
            var result = new DatabaseValidationResult();

            switch (dbSourceDetails.ServerType)
            {
            case enSourceType.SqlDatabase:
                var broker = CreateDatabaseBroker();
                result.DatabaseList = broker.GetDatabases(dbSourceDetails);
                break;

            default:
                result.IsValid = false;
                break;
            }
            return(result);
        }
Esempio n. 4
0
        private void ShowConnectionTestResult(Task <DatabaseValidationResult> antecedent)
        {
            DatabaseValidationResult connectionResult = antecedent.Result;

            if (connectionResult.SuccessfulWithVersion)
            {
                string message = string.Format("Test connection succeeded.");
                // todo enable database versioning, see also commented code in ShowFailedConnectionTestMessage and ButtonCreateNewDatabaseClick.
                // string message = string.Format("Test connection succeeded. (Version: {0})", connectionResult.CurrentVersion);
                MessageBox.Show(message, MESSAGE_HEADER, MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                ShowFailedConnectionTestMessage(connectionResult);
            }

            this.testLabel.Visible = false;
        }
Esempio n. 5
0
        public virtual DatabaseValidationResult DoDatabaseValidation(DbSource dbSourceDetails)
        {
            var result = new DatabaseValidationResult();

            switch (dbSourceDetails.ServerType)
            {
            case enSourceType.SqlDatabase:
                var broker = CreateDatabaseBroker();
                result.DatabaseList = broker.GetDatabases(dbSourceDetails);
                break;

            case enSourceType.MySqlDatabase:
                var mybroker = CreateMySqlDatabaseBroker();
                result.DatabaseList = mybroker.GetDatabases(dbSourceDetails);
                break;

            case enSourceType.Oracle:
                var obroker = CreateOracleDatabaseBroker();
                result.DatabaseList = obroker.GetDatabases(dbSourceDetails);
                break;

            case enSourceType.ODBC:
                var odbcbroker = CreateODBCDatabaseBroker();
                result.DatabaseList = odbcbroker.GetDatabases(dbSourceDetails);
                break;

            case enSourceType.PostgreSQL:
                var postgreBroker = CreatePostgreDatabaseBroker();
                result.DatabaseList = postgreBroker.GetDatabases(dbSourceDetails);
                break;

            default:
                result.IsValid = false;
                break;
            }
            return(result);
        }
Esempio n. 6
0
        public StringBuilder Execute(Dictionary <string, StringBuilder> values, IWorkspace theWorkspace)
        {
            ExecuteMessage     msg        = new ExecuteMessage();
            Dev2JsonSerializer serializer = new Dev2JsonSerializer();

            try
            {
                Dev2Logger.Info("Test DB Connection Service");
                StringBuilder resourceDefinition;

                values.TryGetValue("DbSource", out resourceDefinition);

                IDbSource src = serializer.Deserialize <DbSourceDefinition>(resourceDefinition);
                var       con = new DbSources();
                DatabaseValidationResult result = con.DoDatabaseValidation(new DbSource
                {
                    AuthenticationType = src.AuthenticationType,
                    Server             = src.ServerName,
                    Password           = src.Password,
                    ServerType         = src.Type,
                    UserID             = src.UserName
                });

                msg.HasError = false;
                msg.Message  = new StringBuilder(result.IsValid ? serializer.Serialize(result.DatabaseList) : result.ErrorMessage);
                msg.HasError = !result.IsValid;
            }
            catch (Exception err)
            {
                msg.HasError = true;
                msg.Message  = new StringBuilder(err.Message);
                Dev2Logger.Error(err);
            }

            return(serializer.SerializeToBuilder(msg));
        }
Esempio n. 7
0
        public virtual DatabaseValidationResult DoDatabaseValidation(DbSource dbSourceDetails)
        {
            var result = new DatabaseValidationResult();

            switch (dbSourceDetails.ServerType)
            {
            case enSourceType.SqlDatabase:
                var broker = CreateDatabaseBroker();
                result.DatabaseList = broker.GetDatabases(dbSourceDetails);
                break;

            case enSourceType.MySqlDatabase:
                var mybroker = CreateMySqlDatabaseBroker();
                result.DatabaseList = mybroker.GetDatabases(dbSourceDetails);
                break;

            case enSourceType.Oracle:
                var obroker = CreateOracleDatabaseBroker();
                result.DatabaseList = obroker.GetDatabases(dbSourceDetails);
                break;

            case enSourceType.ODBC:
                var odbcbroker = CreateODBCDatabaseBroker();
                result.DatabaseList = odbcbroker.GetDatabases(dbSourceDetails);
                break;

            case enSourceType.PostgreSQL:
                var postgreBroker = CreatePostgreDatabaseBroker();
                result.DatabaseList = postgreBroker.GetDatabases(dbSourceDetails);
                break;

            case enSourceType.SQLiteDatabase:
                var sqliteBroker = CreateSqliteDatabaseBroker();
                result.DatabaseList = sqliteBroker.GetDatabases(dbSourceDetails);
                break;

            case enSourceType.WebService:
                break;

            case enSourceType.DynamicService:
                break;

            case enSourceType.ManagementDynamicService:
                break;

            case enSourceType.PluginSource:
                break;

            case enSourceType.Unknown:
                break;

            case enSourceType.Dev2Server:
                break;

            case enSourceType.EmailSource:
                break;

            case enSourceType.WebSource:
                break;

            case enSourceType.OauthSource:
                break;

            case enSourceType.SharepointServerSource:
                break;

            case enSourceType.RabbitMQSource:
                break;

            case enSourceType.ExchangeSource:
                break;

            case enSourceType.WcfSource:
                break;

            case enSourceType.ComPluginSource:
                break;

            default:
                result.IsValid = false;
                break;
            }
            return(result);
        }
Esempio n. 8
0
        public StringBuilder Execute(Dictionary <string, StringBuilder> values, IWorkspace theWorkspace)
        {
            var msg        = new ExecuteMessage();
            var serializer = new Dev2JsonSerializer();

            try
            {
                Dev2Logger.Info("Save Resource Service", GlobalConstants.WarewolfInfo);

                values.TryGetValue("DbSource", out StringBuilder resourceDefinition);

                IDbSource src = serializer.Deserialize <DbSourceDefinition>(resourceDefinition);
                if (src.Path.EndsWith("\\"))
                {
                    src.Path = src.Path.Substring(0, src.Path.LastIndexOf("\\", StringComparison.Ordinal));
                }

                var res = new DbSource
                {
                    AuthenticationType = src.AuthenticationType,
                    Server             = src.ServerName,
                    Password           = src.Password,
                    ServerType         = src.Type,
                    UserID             = src.UserName,
                    ResourceID         = src.Id,
                    DatabaseName       = src.DbName,
                    ResourceName       = src.Name,
                    ResourceType       = src.Type.ToString()
                };
                var con = new DbSources();
                DatabaseValidationResult result = null;
                Common.Utilities.PerformActionInsideImpersonatedContext(Common.Utilities.OrginalExecutingUser, () =>
                {
                    result = con.DoDatabaseValidation(new DbSource
                    {
                        AuthenticationType = src.AuthenticationType,
                        Server             = src.ServerName,
                        Password           = src.Password,
                        ServerType         = src.Type,
                        UserID             = src.UserName
                    });
                });
                if (result.IsValid)
                {
                    ResourceCatalog.Instance.SaveResource(GlobalConstants.ServerWorkspaceID, res, src.Path);
                    ServerExplorerRepo.UpdateItem(res);

                    msg.HasError = false;
                }
                else
                {
                    msg.HasError = false;
                    msg.Message  = new StringBuilder(res.IsValid ? "" : result.ErrorMessage);
                }
            }
            catch (Exception err)
            {
                msg.HasError = true;
                msg.Message  = new StringBuilder(err.Message);
                Dev2Logger.Error(err, GlobalConstants.WarewolfError);
            }

            return(serializer.SerializeToBuilder(msg));
        }