Exemple #1
0
        public QueryResult RunQuery(string sqlQuery, string dbName, SavedConnection connection)
        {
            //TODO - See if this actually hurts performance, if so either switch back to static or something else so its always available.
            var queryUnit = new SQLQuery();

            return(sqlQuery == null ? null : queryUnit.SendQueryAndGetResult(sqlQuery, dbName, connection));
        }
Exemple #2
0
 private void btnOk_Click(object sender, EventArgs e)
 {
     this.SavedConnection = new SavedConnection();
     this.SavedConnection.ConnectionName   = txtConnectionName.Text;
     this.SavedConnection.ConnectionString = txtConnectionString.Text;
     this.IsCanceled = false;
     this.Close();
 }
Exemple #3
0
        public static void GenerateSchema(SavedConnection parameter, string dbName, string dbFilePath)
        {
            using (var context = new DbManager($"Server={parameter.Host};Database={dbName};User ID={parameter.Username};Password='******';"))
            {
                var tables           = context.GetTables();
                var dbCreationScript = string.Empty;
                if (Program.DataBackup)
                {
                    dbCreationScript += "SET GLOBAL FOREIGN_KEY_CHECKS=0;";
                }
                var tablesForeignKeys = context.GetTableForignKeys();

                tables.ForEach(x => {
                    if (Program.DataBackup)
                    {
                        dbCreationScript += context.GetTableRows(x);
                    }
                    var od = context.GetTableData(x, tablesForeignKeys);
                    System.Console.WriteLine(od.CreationgString);
                    dbCreationScript += $"{od.CreationgString}\r\n";
                });

                var corelationData = context.GetDbUmlData();
                dbCreationScript += corelationData;
                //d System.Windows.Forms.Clipboard.SetText(dbCreationScript);
                System.Console.WriteLine("Clipboard middleware xclip for Linux is required otherwise the application throws an exception!");
                if (Program.DataBackup)
                {
                    dbCreationScript += "SET GLOBAL FOREIGN_KEY_CHECKS=1;";
                }


                if (!File.Exists($"{dbName}.sql"))
                {
                    using (var file = File.Create($"{dbName}.sql"))
                    {
                    }
                }
                File.WriteAllText($"{dbName}.sql", dbCreationScript);

                System.Console.WriteLine("Text has been saved to your clipboard, plase add it to your editor of choice. Don't froget to double check the generated data types if you like to change the defaults on your own!!!");
                System.Console.WriteLine($"Creatiion script {dbName}.sql has been created in the root directory of the application in case the clipboard functionality fails!!! Known bug on Ubuntu based systems clipboard fails");
                if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
                {
                    WindowsCopy.SetText(dbCreationScript);
                }
                if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
                {
                    MacOsCopy.SetText(dbCreationScript);
                }
                if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
                {
                    LinuxCopy.SetText(dbCreationScript);
                }

                var tempFileName = Path.GetTempFileName();
            }
        }
        private void SaveConnectionToBeBuilt(SavedConnection connection)
        {
            App.Config.SavedConnections.Add(connection);

            App.Config.Save();

            SelectedConnection =
                SavedConnections.FirstOrDefault(r => r.NickName == connection.NickName);
        }
Exemple #5
0
 private void WriteConnectionInfo(SavedConnection connection)
 {
     this.MessageService.WriteLine(string.Format("  Connection String: {0}", connection.ConnectionString));
     this.MessageService.WriteLine(string.Format("  Driver Class: {0}", connection.DriverClass));
     this.MessageService.WriteLine(string.Format("  Provider: {0}", connection.ConnectionProvider));
     this.MessageService.WriteLine(string.Format("  Dialect: {0}", connection.Dialect));
     this.MessageService.WriteLine(string.Format("  Default: {0}", connection.IsDefault));
     this.MessageService.WriteLine();
 }
Exemple #6
0
        private QueryResult Query(string sqlQuery, string dataBaseName, SavedConnection connection)
        {
            var server = connection.GetServer(dataBaseName);

            server.ConnectionContext.Connect();
            var queryDataSet = server.ConnectionContext.ExecuteWithResults(sqlQuery);
            var result       = GetResult(queryDataSet);

            server.ConnectionContext.Disconnect();
            return(result);
        }
Exemple #7
0
        private (bool result, string message) TestConnection(SavedConnection savedConnection)
        {
            var provider =
                (savedConnection.ProviderType == ProviderType.OleDb) ? (QueryProvider) new OleDbQueryProvider(savedConnection.ConnectionString) :
                (savedConnection.ProviderType == ProviderType.MySql) ? (QueryProvider) new MySqlQueryProvider(savedConnection.ConnectionString) :
                (savedConnection.ProviderType == ProviderType.SqlCe) ? (QueryProvider) new SqlCeQueryProvider(savedConnection.ConnectionString) :
                (savedConnection.ProviderType == ProviderType.SqlServer) ? (QueryProvider) new SqlServerQueryProvider(savedConnection.ConnectionString) :
                throw new Exception($"Unknown provider type {savedConnection.ProviderType}");

            return(provider.TestConnection());
        }
Exemple #8
0
        public SavedConnection GetTestConnection()
        {
            var connection = new SavedConnection
            {
                Instance = @"(LocalDB)\MSSQLLocalDB",
                NickName = "Test",
                WindowsAuthentication = true,
                Timeout = 30
            };

            return(connection);
        }
        void FillCmbDatasource()
        {
            if (cmbSavedConnection.SelectedItem != null)
            {
                SavedConnection        connection       = (SavedConnection)cmbSavedConnection.SelectedItem;
                string                 connectionString = connection.ConnectionString;
                List <DataSourceTable> tables           = GetTables(connectionString);

                cmbDatasource.ValueMember   = "TableName";
                cmbDatasource.DisplayMember = "FullTableName";
                cmbDatasource.DataSource    = tables;
            }
        }
        private void btnAddConnection_Click(object sender, EventArgs e)
        {
            FormAddConnection frm = new FormAddConnection();

            frm.ShowDialog();
            if (frm.IsCanceled == false)
            {
                SavedConnection        con   = frm.SavedConnection;
                List <SavedConnection> conns = LoadSavedConnectionsFromFile();
                conns.Add(con);
                SaveSavedConnections(conns);
                DisplaySavedConnections(conns);
            }
        }
        void DeleteSavedConnection(string name)
        {
            SavedConnection        con = null;
            List <SavedConnection> savedConnections = LoadSavedConnectionsFromFile();

            foreach (SavedConnection conn in savedConnections)
            {
                if (conn.ConnectionName.ToLower() == name.ToLower())
                {
                    con = conn;
                }
            }
            savedConnections.Remove(con);
            SaveSavedConnections(savedConnections);
        }
        string GetSavedConnectionFileContent(string filename)
        {
            if (System.IO.File.Exists(filename) == false)
            {
                SavedConnection con = new SavedConnection();
                con.ConnectionName   = "Test";
                con.ConnectionString = "Test";
                List <SavedConnection> list = new List <SavedConnection>();
                list.Add(con);

                string xml = Utility.Serializer.XML.Serialize(list);
                System.IO.File.WriteAllText(filename, xml);
            }
            string content = System.IO.File.ReadAllText(filename);

            return(content);
        }
Exemple #13
0
        public static void GenerateSchema(SavedConnection parameter, string dbName, string dbFilePath)
        {
            var res = new List <UmlBindingData>();

            using (var context = new DbManager($"Server={parameter.Host};Database={dbName};User ID={parameter.Username};Password='******';"))
            {
                var tableData = new UmlBindingData();

                var outboundData = new List <OutboundTable>();
                var tables       = context.GetTables();
                tables.ForEach(x => {
                    outboundData.Add(context.GetTableData(x));
                });
                tableData.Tables      = outboundData;
                tableData.Connections = context.GetDbUmlData();
                res.Add(tableData);
            }
            var generatedPlantUML = GenerateDatabaseRelations(res, dbFilePath);
        }
        internal static void SaveDatabaseGen()
        {
            System.Console.WriteLine("In");
            var data            = InputHandler.GetSavedConnections();
            var getCons         = data == null ? new List <SavedConnection>() : data;
            var count           = getCons.Count == 0 ?  getCons.Count + 1 : getCons.Count + 1;
            var conStirng       = $"Server={Program.Ip};Database={Program.Database};User ID={Program.User};Password='******';";
            var savedConnection = new SavedConnection {
                Username         = Program.User,
                Password         = Program.Password,
                FilePath         = Program.FilePath,
                Database         = Program.Database,
                Host             = Program.Ip,
                ConnectionString = conStirng,
                ConnectionId     = count,
            };

            getCons.Add(savedConnection);
            InputHandler.SavedConnections(getCons);
        }
Exemple #15
0
        /// <summary>
        ///     Sends a sql query to the sql server instance and database that are in the current connection string.
        ///     The sql query must be in the form of a string and can be anything such as select, update, etc.
        /// </summary>
        /// <param name="sqlQuery">A plain text sql query such as select * from tableName</param>
        /// <returns>QueryResult</returns>
        public QueryResult SendQueryAndGetResult(string sqlQuery, string dataBase, SavedConnection connection)
        {
            var result = new QueryResult();

            try
            {
                result = Query(sqlQuery, dataBase, connection);
            }
            catch (SqlException ex)
            {
                result.HasErrors      = true;
                result.ResultsMessage = ProcessSqlErrors(ex);
            }
            catch (Exception ex)
            {
                result.HasErrors      = true;
                result.ResultsMessage = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
            }

            return(result);
        }
Exemple #16
0
        private static void SaveDatabaseGen()
        {
            System.Console.WriteLine("In");
            var data            = InputHandler.GetSavedConnections();
            var getCons         = data == null ? new List <SavedConnection>() : data;
            var count           = getCons.Count == 0 ?  getCons.Count + 1 : getCons.Count + 1;
            var conStirng       = $"Server={Ip};Database={Database};User ID={User};Password='******';";
            var savedConnection = new SavedConnection {
                Username         = string.IsNullOrEmpty(User) ? "" : User,
                Password         = string.IsNullOrEmpty(Password) ? "" : Password,
                FilePath         = string.IsNullOrEmpty(FilePath) ? "" : FilePath,
                Database         = string.IsNullOrEmpty(Database) ? "" : Database,
                Host             = string.IsNullOrEmpty(Ip) ? "" : Ip,
                ConnectionString = string.IsNullOrEmpty(conStirng) ? "" : conStirng,
                ConnectionId     = count,
                DbContextPath    = string.IsNullOrEmpty(DbContextPath) ? "" : DbContextPath
            };

            getCons.Add(savedConnection);
            InputHandler.SavedConnections(getCons);
        }
        private SavedConnection BuildConnection()
        {
            var connection = new SavedConnection
            {
                Instance = DataSource,
                Timeout  = ConnectTimeout,
                NickName = NickName
            };

            if (!UseWindowsAuthentication)
            {
                connection.UserName = UserId;
                connection.Password = Password;
            }
            else
            {
                connection.WindowsAuthentication = true;
            }

            return(connection);
        }
Exemple #18
0
        private static void EditConnection()
        {
            System.Console.WriteLine("In");
            var data    = InputHandler.GetSavedConnections();
            var getCons = data == null ? new List <SavedConnection>() : data;

            var conStirng          = $"Server={Ip};Database={Database};User ID={User};Password='******';";
            var updatingConnection = new SavedConnection();

            updatingConnection.ConnectionId     = SavedConnection.ConnectionId;
            updatingConnection.Username         = string.IsNullOrEmpty(User) ? "" : User;
            updatingConnection.Password         = string.IsNullOrEmpty(Password) ? "" : Password;
            updatingConnection.FilePath         = string.IsNullOrEmpty(FilePath) ? "" : FilePath;
            updatingConnection.Database         = string.IsNullOrEmpty(Database) ? "" : Database;
            updatingConnection.Host             = string.IsNullOrEmpty(Ip) ? "" : Ip;
            updatingConnection.ConnectionString = string.IsNullOrEmpty(conStirng) ? "" : conStirng;
            updatingConnection.DbContextPath    = string.IsNullOrEmpty(DbContextPath) ? "" : DbContextPath;
            SavedConnection = getCons.FirstOrDefault(x => x.ConnectionId == SavedConnection.ConnectionId);
            getCons.Remove(SavedConnection);
            getCons.Add(updatingConnection);
            InputHandler.SavedConnections(getCons);
        }
        public static string saved()
        {
            List <SavedConnection> savedConns = SavedConnection.getSavedConnections();

            if (savedConns.Count > 0)
            {
                int counter = 1;
                foreach (var connection in savedConns)
                {
                    System.Console.WriteLine("[" + counter + "] " + connection.ToString());
                    counter += 1;
                }

                System.Console.Write("Enter the saved connection you want to use: ");
                int index = Convert.ToInt32(System.Console.ReadLine());
                System.Console.WriteLine("Logging into: " + savedConns[index - 1]);
                return(Login(savedConns[index - 1].address, savedConns[index - 1].username));
            }
            else
            {
                return("There is no saved information. Please use the Login command to connect to a server.");
            }
        }
        public (string errorMessage, bool valid) SetAndTestConnection(SavedConnection savedConnection)
        {
            if (savedConnection != null)
            {
                var server = savedConnection.GetServer();
                var result = savedConnection.TestConnection();

                if (!result.valid)
                {
                    return(result);
                }
                if (CurrentConnections.All(x => x.Instance != savedConnection.Instance))
                {
                    CurrentConnections.Add(savedConnection);
                }

                _mainInstanceAndDatabaseTracker.CurrentInstance = server;
                _mainInstanceAndDatabaseTracker.CurrentDatabase = null;

                return(result);
            }

            return(NullConnectionResponse);
        }