public void CreateEntrys(string connection, string outputPath, string database) { TargetDir = outputPath; Manager = new DbAccessLayer(DbAccessType.MsSql, connection); bool checkDatabase; try { checkDatabase = Manager.CheckDatabase(); } catch (Exception) { checkDatabase = false; } if (!checkDatabase) { throw new Exception("Database not accessible. Maybe wrong Connection or no Selected Database?"); } var databaseName = string.IsNullOrEmpty(Manager.Database.DatabaseName) ? database : Manager.Database.DatabaseName; if (string.IsNullOrEmpty(databaseName)) { throw new Exception("Database not exists. Maybe wrong Connection or no Selected Database?"); } WinConsole.WriteLine("Connection OK ... Reading Server Version ..."); SqlVersion = Manager.RunSelect <string>(Manager.Database.CreateCommand("SELECT SERVERPROPERTY('productversion')")).FirstOrDefault(); WinConsole.WriteLine("Server version is {0}", SqlVersion); WinConsole.WriteLine("Reading Tables from {0} ...", databaseName); Tables = Manager.Select <TableInformations>() .ToArray() .AsParallel() .Select(s => new TableInfoModel(s, databaseName, new DbAccessLayer(DbAccessType.MsSql, connection))) .ToList(); Views = Manager.Select <ViewInformation>() .ToArray() .AsParallel() .Select(s => new TableInfoModel(s, databaseName, new DbAccessLayer(DbAccessType.MsSql, connection))) .ToList(); StoredProcs = Manager.Select <StoredProcedureInformation>() .Select(s => new StoredPrcInfoModel(s)) .ToList(); WinConsole.WriteLine( "Found {0} Tables, {1} Views, {2} Procedures ... select a Table to see Options or start an Action", Tables.Count(), Views.Count(), StoredProcs.Count()); Enums = new List <Dictionary <int, string> >(); RenderMenu(); }
public DbAccessLayer GetWrapper() { DbAccessLayer expectWrapper = null; var elementType = GetElementType(); expectWrapper = _managers[elementType].GetWrapper(); //if (elementType == DbAccessType.MsSql) //{ // expectWrapper = new MsSqlManager().GetWrapper(); //} //else if (elementType == DbAccessType.SqLite) //{ // expectWrapper = new SqLiteManager().GetWrapper(); //} _errorData = new StringBuilder(); expectWrapper.RaiseEvents = true; expectWrapper.OnSelect += (sender, eventArg) => { _errorData.AppendFormat(@"SELECT: \r\n{0}", eventArg.QueryDebugger); _errorData.AppendLine(); }; expectWrapper.OnDelete += (sender, eventArg) => { _errorData.AppendFormat(@"DELETE: \r\n{0}", eventArg.QueryDebugger); _errorData.AppendLine(); }; expectWrapper.OnInsert += (sender, eventArg) => { _errorData.AppendFormat(@"INSERT: \r\n{0}", eventArg.QueryDebugger); _errorData.AppendLine(); }; expectWrapper.OnUpdate += (sender, eventArg) => { _errorData.AppendFormat(@"Update: \r\n{0}", eventArg.QueryDebugger); _errorData.AppendLine(); }; Assert.NotNull(expectWrapper, "This test cannot run as no Database Variable is defined"); bool checkDatabase = expectWrapper.CheckDatabase(); Assert.IsTrue(checkDatabase); expectWrapper.Config.ConstructorSettings.FileCollisonDetection = CollisonDetectionMode.Pessimistic; expectWrapper.Config.ConstructorSettings.CreateDebugCode = false; expectWrapper.Multipath = true; QueryDebugger.UseDefaultDatabase = expectWrapper.DatabaseStrategy; return(expectWrapper); }
public DbAccessLayer GetWrapper(DbAccessType type, params object[] additionalArguments) { DbAccessLayer expectWrapper = null; _errorData.AppendLine("---------------------------------------------"); _errorData.AppendLine("Found " + type); Assert.That(new DbConfig().SClassInfoCaches, Is.Empty, () => "The Global Class cache is not empty"); var testClassName = TestContext.CurrentContext.Test.ClassName.Replace(typeof(Manager).Namespace, "") .Where(e => char.IsUpper(e)).Select(e => e.ToString()) .Aggregate((e, f) => e + f) + "." + TestContext.CurrentContext.Test.MethodName; testClassName = testClassName + "_" + Guid.NewGuid().ToString("N"); testClassName = new Regex("[^a-zA-Z0-9]").Replace(testClassName, "_"); _errorData.AppendLine($"Attach to Database: {testClassName}"); expectWrapper = (_selectedMgr = _managers[type]()).GetWrapper(type, testClassName); expectWrapper.Config.EnableInstanceThreadSafety = true; expectWrapper.RaiseEvents = true; expectWrapper.RaiseEventsAsync = false; expectWrapper.OnSelect += (sender, eventArg) => { _querys.Add(new KeyValuePair <string, string>("SELECT", eventArg.QueryDebugger.ToString())); }; expectWrapper.OnDelete += (sender, eventArg) => { _querys.Add(new KeyValuePair <string, string>("DELETE", eventArg.QueryDebugger.ToString())); }; expectWrapper.OnInsert += (sender, eventArg) => { _querys.Add(new KeyValuePair <string, string>("INSERT", eventArg.QueryDebugger.ToString())); }; expectWrapper.OnUpdate += (sender, eventArg) => { _querys.Add(new KeyValuePair <string, string>("UPDATE", eventArg.QueryDebugger.ToString())); }; expectWrapper.OnNonResultQuery += (sender, eventArg) => { _querys.Add(new KeyValuePair <string, string>("Query", eventArg.QueryDebugger.ToString())); }; expectWrapper.OnFailedQuery += (sender, eventArg, exception) => { _querys.Add(new KeyValuePair <string, string>("Query Failed", eventArg.QueryDebugger.ToString())); }; Assert.NotNull(expectWrapper, "This test cannot run as no Database Variable is defined"); var checkDatabase = expectWrapper.CheckDatabase(); Assert.IsTrue(checkDatabase); AllTestContextHelper.TestSetup(expectWrapper.Config.ConstructorSettings); expectWrapper.Multipath = true; return(expectWrapper); }
public async Task CreateEntrysAsync(string connection, string outputPath, string database) { Status = "Try to connect"; //Data Source=(LocalDb)\ProjectsV12;Integrated Security=True;Database=TestDB; IsEnumeratingDatabase = true; TargetDir = outputPath; var checkDatabase = false; if (connection.StartsWith("file:\\\\")) { MsSqlStructure = new DacpacMsSqlStructure(connection.Replace("file:\\\\", "")); } else { var dbAccessLayer = new DbAccessLayer(DbAccessType.MsSql, connection); MsSqlStructure = new DatabaseMsSqlStructure(dbAccessLayer); try { checkDatabase = dbAccessLayer.CheckDatabase(); } catch (Exception) { IsEnumeratingDatabase = false; Connected = false; checkDatabase = false; } var databaseName = string.IsNullOrEmpty(MsSqlStructure.GetDatabaseName()) ? database : MsSqlStructure.GetDatabaseName(); if (string.IsNullOrEmpty(databaseName)) { IsEnumeratingDatabase = false; Status = "Database not exists. Maybe wrong Connection or no Selected Database?"; Connected = false; return; } } DbConfig.EnableGlobalThreadSafety = true; if (!Connected) { IsEnumeratingDatabase = false; Status = "Database not accessible. Maybe wrong Connection or no Selected Database?"; return; } Status = "Connection OK ... Reading Server Version ..."; //SqlVersion = Manager.RunPrimetivSelect<string>("SELECT SERVERPROPERTY('productversion')").FirstOrDefault(); Status = "Reading Tables"; var counter = 2; var createTables = SimpleWork(() => { var tables = MsSqlStructure.GetTables() .Select( s => new TableInfoModel(s, MsSqlStructure.GetDatabaseName(), MsSqlStructure)) .Select(s => new TableInfoViewModel(s, this)) .ToList(); foreach (var source in tables) { if (Tables.All(f => f.Info.TableName != source.Info.TableName)) { Tables.Add(source); } } }); var createViews = SimpleWork(() => { var views = MsSqlStructure.GetViews() .Select(s => new TableInfoModel(s, MsSqlStructure.GetDatabaseName(), MsSqlStructure)) .Select(s => new TableInfoViewModel(s, this)) .ToList(); foreach (var source in views) { if (Views.All(f => f.Info.TableName != source.Info.TableName)) { Views.Add(source); } } }); await createTables; await createViews; SelectedTable = Tables.FirstOrDefault(); IsEnumeratingDatabase = false; Status = "Done"; }
public DbAccessLayer GetWrapper(DbAccessType type, params object[] additionalArguments) { DbAccessLayer expectWrapper = null; _errorData.AppendLine("---------------------------------------------"); _errorData.AppendLine("Found " + type); Assert.That(new DbConfig().SClassInfoCaches, Is.Empty, () => "The Global Class cache is not empty"); var testClassName = TestContext.CurrentContext.Test.ClassName.Replace(typeof(Manager).Namespace, "").Where(e => char.IsUpper(e)).Select(e => e.ToString()) .Aggregate((e, f) => e + f) + "." + TestContext.CurrentContext.Test.MethodName; //var arguments = // additionalArguments.Select( // f => // { // if (f == null) // { // return TestContext.CurrentContext.Random.NextShort().ToString(); // } // if (typeof(string).Assembly.GetTypes().Contains(f.GetType())) // { // return f.ToString(); // } // return f.GetHashCode().ToString(); // }) // .ToArray(); //if (arguments.Any()) //{ // testClassName = //} testClassName = testClassName + "_" + Guid.NewGuid().ToString("N"); testClassName = new Regex("[^a-zA-Z0-9]").Replace(testClassName, "_"); _errorData.AppendLine($"Attach to Database: {testClassName}"); expectWrapper = (_selectedMgr = _managers[type]()).GetWrapper(type, testClassName); expectWrapper.Config.EnableInstanceThreadSafety = true; expectWrapper.RaiseEvents = true; expectWrapper.OnSelect += (sender, eventArg) => { _errorData.AppendFormat(@"SELECT: \r\n{0}", eventArg.QueryDebugger); _errorData.AppendLine(); }; expectWrapper.OnDelete += (sender, eventArg) => { _errorData.AppendFormat(@"DELETE: \r\n{0}", eventArg.QueryDebugger); _errorData.AppendLine(); }; expectWrapper.OnInsert += (sender, eventArg) => { _errorData.AppendFormat(@"INSERT: \r\n{0}", eventArg.QueryDebugger); _errorData.AppendLine(); }; expectWrapper.OnUpdate += (sender, eventArg) => { _errorData.AppendFormat(@"UPDATE: \r\n{0}", eventArg.QueryDebugger); _errorData.AppendLine(); }; expectWrapper.OnFailedQuery += (sender, eventArg, exception) => { _errorData.AppendFormat(@"Query Failed: \r\n{0}\r\n{1}", eventArg.QueryDebugger, exception); _errorData.AppendLine(); }; Assert.NotNull(expectWrapper, "This test cannot run as no Database Variable is defined"); var checkDatabase = expectWrapper.CheckDatabase(); Assert.IsTrue(checkDatabase); AllTestContextHelper.TestSetup(expectWrapper.Config.ConstructorSettings); expectWrapper.Multipath = true; return(expectWrapper); }
public void CreateEntrys(string connection, string outputPath, string database) { TargetDir = outputPath; bool checkDatabase = false; if (connection.StartsWith("file:\\\\")) { MsSqlStructure = new DacpacMsSqlStructure(connection.Replace("file:\\\\", "")); checkDatabase = true; } else { var dbAccessLayer = new DbAccessLayer(DbAccessType.MsSql, connection); MsSqlStructure = new DatabaseMsSqlStructure(dbAccessLayer); try { checkDatabase = dbAccessLayer.CheckDatabase(); } catch (Exception) { checkDatabase = false; } var databaseName = string.IsNullOrEmpty(dbAccessLayer.Database.DatabaseName) ? database : dbAccessLayer.Database.DatabaseName; if (string.IsNullOrEmpty(databaseName)) { throw new Exception("Database not exists. Maybe wrong Connection or no Selected Database?"); } } if (!checkDatabase) { throw new Exception("Database not accessible. Maybe wrong Connection or no Selected Database?"); } WinConsole.WriteLine("Connection OK ... Reading Server Version ..."); SqlVersion = MsSqlStructure.GetVersion().ToString(); WinConsole.WriteLine("Server version is {0}", SqlVersion); WinConsole.WriteLine("Reading Tables from {0} ...", MsSqlStructure.GetDatabaseName()); Tables = MsSqlStructure.GetTables() //.AsParallel() .Select(s => new TableInfoModel(s, MsSqlStructure.GetDatabaseName(), MsSqlStructure)) .ToList(); Views = MsSqlStructure.GetViews() //.AsParallel() .Select(s => new TableInfoModel(s, MsSqlStructure.GetDatabaseName(), MsSqlStructure)) .ToList(); StoredProcs = MsSqlStructure.GetStoredProcedures() .Select(s => new StoredPrcInfoModel(s)) .ToList(); WinConsole.WriteLine( "Found {0} Tables, {1} Views, {2} Procedures ... select a Table to see Options or start an Action", Tables.Count(), Views.Count(), StoredProcs.Count()); Enums = new List <Dictionary <int, string> >(); RenderMenu(); }