public static MigrationStrategyBase GetDatabaseGenerationStrategyBase(LinkedDatabase database) { if (database.DatabaseType == DatabaseType.SqlServer) { return(new SqlServerMigrationStrategy()); } throw new NotImplementedException(); }
private void btnPickOther_Click(object sender, EventArgs e) { LinkedDatabase[] items = new LinkedDatabase[] { new LinkedDatabase("Populating list...") }; if (this._allLinkedDatabases != null) { items = this._allLinkedDatabases; } ThreadStart start = null; using (ListPicker picker = new ListPicker(items, true)) { if (this._allLinkedDatabases == null) { if (start == null) { start = delegate { Action method = null; Action action2 = null; try { this._allLinkedDatabases = this._linkedDbFetcher().ToArray <LinkedDatabase>(); if (((this._allLinkedDatabases != null) && this._allLinkedDatabases.Any <LinkedDatabase>()) && !picker.IsDisposed) { if (method == null) { method = () => picker.AllItems = this._allLinkedDatabases; } picker.Invoke(method); } } catch (Exception exception) { if (!picker.IsDisposed) { if (!picker.IsDisposed) { if (action2 == null) { action2 = () => picker.AllItems = null; } picker.Invoke(action2); } MessageBox.Show("Error: " + exception.Message, "LINQPad"); } } }; } new Thread(start).Start(); } if ((picker.ShowDialog() == DialogResult.OK) && (picker.SelectedItems != null)) { foreach (LinkedDatabase database in picker.SelectedItems) { this.grdOther.Rows.Add(new object[] { database.Server, database.Database }); } } } }
private void btnPickOther_Click(object sender, EventArgs e) { LinkedDatabase[] items = new LinkedDatabase[] { new LinkedDatabase("Populating list...") }; if (this._allLinkedDatabases != null) { items = this._allLinkedDatabases; } ThreadStart start = null; using (ListPicker picker = new ListPicker(items, true)) { if (this._allLinkedDatabases == null) { if (start == null) { start = delegate { Action method = null; Action action2 = null; try { this._allLinkedDatabases = this._linkedDbFetcher().ToArray<LinkedDatabase>(); if (((this._allLinkedDatabases != null) && this._allLinkedDatabases.Any<LinkedDatabase>()) && !picker.IsDisposed) { if (method == null) { method = () => picker.AllItems = this._allLinkedDatabases; } picker.Invoke(method); } } catch (Exception exception) { if (!picker.IsDisposed) { if (!picker.IsDisposed) { if (action2 == null) { action2 = () => picker.AllItems = null; } picker.Invoke(action2); } MessageBox.Show("Error: " + exception.Message, "LINQPad"); } } }; } new Thread(start).Start(); } if ((picker.ShowDialog() == DialogResult.OK) && (picker.SelectedItems != null)) { foreach (LinkedDatabase database in picker.SelectedItems) { this.grdOther.Rows.Add(new object[] { database.Server, database.Database }); } } } }
public override Database GetDatabase(LinkedDatabase database) { var sqlServerRepository = new SqlServerDatabaseReader(database); return(new Database { StoredProcedures = sqlServerRepository.GetStoredProcedures(), Tables = sqlServerRepository.GetTables() }); }
public override string GetMigrationScript(LinkedDatabase database) { var sqlServerStoredProcReader = new StoredProcedureDatabaseReader(database); var fileReader = new SqlServerFileReader(); var storedProcFilePaths = Directory.GetFiles(SubfolderService.GetStoredProceduresFolder(database), ".sql"); var storedProcDifferentiator = new SqlServerStoredProcedureDifferentiator(); return(storedProcDifferentiator.GetDifferenceAlterString(fileReader.StoredProcedures(storedProcFilePaths), sqlServerStoredProcReader.GetStoredProcedures())); }
public static string GetStoredProceduresFolder(LinkedDatabase database) { var directory = Directory.GetCurrentDirectory(); var folderName = Path.Combine(directory, database.Name); var storedProcFolderName = Path.Combine(folderName, "Stored Procedures"); if (!Directory.Exists(storedProcFolderName)) { Directory.CreateDirectory(storedProcFolderName); } return(storedProcFolderName); }
public static string GetTableFolder(LinkedDatabase database) { var directory = Directory.GetCurrentDirectory(); var folderName = Path.Combine(directory, database.Name); var tableFolderName = Path.Combine(folderName, "Tables"); if (!Directory.Exists(tableFolderName)) { Directory.CreateDirectory(tableFolderName); } return(tableFolderName); }
public int CreateLinkedDatabaseFolder(string databaseName) { try { var directory = Directory.GetCurrentDirectory(); var fileName = Path.Combine(directory, $"{databaseName}.json"); var folderName = Path.Combine(directory, databaseName); if (File.Exists(fileName)) { File.Delete(fileName); } if (Directory.Exists(folderName)) { Directory.Delete(folderName, true); } Directory.CreateDirectory(folderName); using (var file = File.Create(fileName)) { var database = new LinkedDatabase { Name = databaseName, DatabaseType = DatabaseType.NotSetUp, ConnectionString = string.Empty, FolderLocation = folderName }; var json = JsonConvert.SerializeObject(database, Formatting.Indented); var writeBytes = Encoding.UTF8.GetBytes(json); file.Write(writeBytes, 0, writeBytes.Length); } return(0); } catch (Exception e) { Console.WriteLine("Exception caught:" + e.Message); return(1); } }
public WhenRunningIntegrationTests() { if (Environment.GetEnvironmentVariable(EnvironmentVariableName) == null) { Environment.SetEnvironmentVariable( EnvironmentVariableName, "Data Source=localhost;Integrated Security=True;"); } Database = new LinkedDatabase { DatabaseType = DatabaseType.SqlServer, ConnectionString = Environment.GetEnvironmentVariable(EnvironmentVariableName), Name = EnhancedRandom.String(10, 20) }; using (var conn = new SqlConnection(Database.ConnectionString)) { conn.Open(); var exists = conn.ExecuteScalar <bool>("SELECT 1 FROM sys.databases WHERE name = @name", new { name = Database.Name }); if (!exists) { conn.Execute($"CREATE DATABASE {Database.Name}"); } else { conn.Execute($"DROP DATABASE {Database.Name}"); conn.Execute($"CREATE DATABASE {Database.Name}"); } } var automapperStartup = new AutomapperStartup(); automapperStartup.Startup(null); }
public TableDatabaseReader(LinkedDatabase database) { _database = database; }
public SqlServerDatabaseReader(LinkedDatabase database) { _database = database; _tableReader = new TableDatabaseReader(database); _spReader = new StoredProcedureDatabaseReader(database); }
public Database GetDatabase(LINQPad.Repository r, LinkedDatabase serverLinkedDb, bool sameServerLink, string systemSchema) { Func <LINQPad.Repository, Database> selector = null; Func <LinkedDatabase, Database> func2 = null; Database database; if (systemSchema != null) { sameServerLink = true; } this._repository = r; this._serverPrefix = (serverLinkedDb == null) ? "" : (serverLinkedDb.QualifiedPrefix + "."); this._excludeFuncs = serverLinkedDb != null; this._systemSchema = systemSchema; using (this._cx = (SqlConnection)this._repository.Open()) { this.PopulateVersionAndTypes(); using (SqlDataReader reader = this.GetMainSchemaReader()) { HashSet <string> keys = new HashSet <string>(this.ReadPKeys(reader)); reader.NextResult(); List <Column> columns = this.ReadColumns(reader, keys).ToList <Column>(); reader.NextResult(); List <ColumnAssociation> associations = this.ReadAssociations(columns, reader).ToList <ColumnAssociation>(); reader.NextResult(); List <Parameter> routineParameters = this.ReadParameters(reader).ToList <Parameter>(); if (serverLinkedDb != null) { return(new Database(serverLinkedDb.Server, serverLinkedDb.Database, systemSchema, r.DynamicSchemaOptions, columns, associations, routineParameters, null)); } if (sameServerLink || (systemSchema != null)) { return(new Database(null, r.Database, systemSchema, r.DynamicSchemaOptions, columns, associations, routineParameters, null)); } List <Database> list4 = new List <Database>(); if (this.AllowOtherDatabases) { if ((r.IncludeSystemObjects && (r.Database != "master")) && (string.IsNullOrEmpty(this._sqlVersion) || (this._sqlVersion[0] != '8'))) { LINQPad.Repository repository = r.Clone(); repository.LinkedDatabases = null; repository.IncludeSystemObjects = false; if (this.ThunkToMasterForSystemSchemas) { repository.Database = "master"; } repository.AttachFile = false; repository.AttachFileName = ""; list4.Add(this.CreateNew().GetDatabase(repository, null, true, "sys")); list4.Add(this.CreateNew().GetDatabase(repository, null, true, "INFORMATION_SCHEMA")); } if (selector == null) { selector = lr => this.CreateNew().GetDatabase(lr, null, true, null); } list4.AddRange(r.GetSameServerLinkedRepositories().Select <LINQPad.Repository, Database>(selector)); if (func2 == null) { func2 = ld => this.CreateNew().GetDatabase(r, ld, false, null); } list4.AddRange(r.GetOtherServerLinkedDatabases().Select <LinkedDatabase, Database>(func2)); } database = new Database(null, null, null, r.DynamicSchemaOptions, columns, associations, routineParameters, list4.ToArray()); } } return(database); }
public abstract Database GetDatabase(LinkedDatabase database);
public abstract string GetMigrationScript(LinkedDatabase database);
public StoredProcedureDatabaseReader(LinkedDatabase database) { _database = database; }