// 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); }
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); }
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); }
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; }
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); }
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)); }
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); }
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)); }