public ConnectionItem GetConnection(int id) { try { string sql = " SELECT ID, name, address, port, userName,"; sql += " password, connectionType, defaultDatabase FROM [ReportingConnections] WHERE ID=" + id; SqliteDataReader reader = this.ExecuteReader(sql); while (reader.Read()) { ConnectionItem.ConnectionTypes connType = ConnectionItem.ConnectionTypes.MySQL; switch (reader[6].ToString()) { case "1": connType = ConnectionItem.ConnectionTypes.MSSQL; break; } string strPassword = ""; if (reader[5] != DBNull.Value) { strPassword = System.Text.Encoding.UTF8.GetString(DBContent.AES_Decrypt((byte[])(reader[5]))); } return(new ConnectionItem(int.Parse(reader[0].ToString()), reader[1].ToString(), reader[2].ToString(), int.Parse(reader[3].ToString()), reader[4].ToString(), strPassword, connType, reader[7].ToString())); } } finally { this.CleanUp(); } return(null); }
protected override ApplyResult ProcessApplyItem(ref object obj, out string errorMessage, out string successMessage, out bool edited) { errorMessage = ""; successMessage = ""; edited = false; string action = this.Request.Form.action.Value.ToLower(); int objectID = -1; if (this.Request.Form.objectID != null) { objectID = int.Parse(this.Request.Form.objectID.Value.ToString()); } string defaultDatabase = ""; if (this.Request.Form.DefaultDatabase != null) { defaultDatabase = this.Request.Form.DefaultDatabase.Value; } int port = 0; bool portError = false; if (this.Request.Form.ConnPort != null) { if (!int.TryParse(this.Request.Form.ConnPort.Value, out port)) { portError = true; } } ConnectionItem.ConnectionTypes type = this.Request.Form.ConnectionTypes.Value == "mysql" ? ConnectionItem.ConnectionTypes.MySQL : ConnectionItem.ConnectionTypes.MSSQL; ConnectionItem item = new ConnectionItem(objectID, this.Request.Form.Name.Value, this.Request.Form.Host.Value, port, this.Request.Form.Username.Value, this.Request.Form.Password.Value, type, defaultDatabase); obj = item; bool showRefreshMessage = false; switch (action) { case BaseWebModule.PostSave: bool result = false; if (!portError) { result = new DBContent().SaveConnection(item, out errorMessage); edited = item.ID > 0; } else { errorMessage = "Invalid Port."; } if (result) { return(ApplyResult.Save); } break; case ConnectionModule.PostRefresh: showRefreshMessage = true; break; case BaseWebModule.PostCancel: return(ApplyResult.Cancel); case ConnectionModule.PostTest: if (ConnectionItem.TestConnection(item, out errorMessage)) { successMessage = "Successfully connected to the database."; } break; } string message; if (item.RefreshDatabases(out message)) { if (showRefreshMessage) { successMessage = "Successfully refreshed."; } } else { if (showRefreshMessage) { errorMessage = message; } } return(ApplyResult.Message); }