private void ExecuteSql(string script, ExecutionContext context) { var connectionInfo = new ConnectionInfo { ConnectionName = null, DataSource = (string)context.ResolveVariable(DataSource), InitialCatalog = InitialCatalog.Initial, InitialCatalogName = (string)context.ResolveVariable(InitialCatalogName), UserName = (string)context.ResolveVariable(UserName), Password = (string)context.ResolveVariable(Password) }; var connectionString = MsSqlDataContext.GetConnectionString(connectionInfo) ?? ConnectionStrings.ConnectionString; //TODO: [DIREF] get options from DI through constructor using (var ctx = new MsSqlDataContext(connectionString, DataOptions.GetLegacyConfiguration(), CancellationToken.None)) { ctx.ExecuteReaderAsync(script, async(reader, cancel) => { do { if (reader.HasRows) { while (await reader.ReadAsync(cancel).ConfigureAwait(false)) { // empty code block, created only for checking the connection } } } while (reader.NextResult()); return(Task.FromResult(0)); }).GetAwaiter().GetResult(); } }
public override void Execute(ExecutionContext context) { var connectionInfo = new ConnectionInfo { ConnectionName = (string)context.ResolveVariable(ConnectionName), DataSource = (string)context.ResolveVariable(DataSource), InitialCatalog = InitialCatalog, InitialCatalogName = (string)context.ResolveVariable(InitialCatalogName), UserName = (string)context.ResolveVariable(UserName), Password = (string)context.ResolveVariable(Password) }; var connectionString = MsSqlDataContext.GetConnectionString(connectionInfo); var initialData = InitialData.Load(new SenseNetServicesInitialData(), null); var dataOptions = Options.Create(DataOptions.GetLegacyConfiguration()); var connOptions = Options.Create(new ConnectionStringOptions { ConnectionString = connectionString }); var installer = new MsSqlDataInstaller(connOptions, NullLoggerFactory.Instance.CreateLogger <MsSqlDataInstaller>()); var dataProvider = new MsSqlDataProvider(dataOptions, connOptions, installer); installer.InstallInitialDataAsync(initialData, dataProvider, CancellationToken.None).GetAwaiter().GetResult(); }
public void DC_MSSQL_Construction_ConnectionInfo_Named_CustomDb() { var connectionInfo = new ConnectionInfo { ConnectionName = "CustomCnStr", InitialCatalog = InitialCatalog.Initial, InitialCatalogName = "CustomDb" }; // ACTION var connectionStrings = new ConnectionStringOptions { Repository = "Data Source=ds;Initial Catalog=ic;Integrated Security=True", AllConnectionStrings = new Dictionary <string, string> { { "CustomCnStr", "Data Source=CustomServer;Initial Catalog=InitialCatalog1;Integrated Security=True" } } }; var connectionString = MsSqlDataContext.GetConnectionString(connectionInfo, connectionStrings); // ASSERT var expected = "Data Source=CustomServer;Initial Catalog=CustomDb;Integrated Security=True"; Assert.AreEqual(expected, connectionString); }
private void ExecuteSql(SqlScriptReader sqlReader, ExecutionContext context) { var connectionInfo = new ConnectionInfo { ConnectionName = (string)context.ResolveVariable(ConnectionName), DataSource = (string)context.ResolveVariable(DataSource), InitialCatalog = InitialCatalog, InitialCatalogName = (string)context.ResolveVariable(InitialCatalogName), UserName = (string)context.ResolveVariable(UserName), Password = (string)context.ResolveVariable(Password) }; var connectionString = MsSqlDataContext.GetConnectionString(connectionInfo, context.ConnectionStrings) ?? context.ConnectionStrings.Repository; while (sqlReader.ReadScript()) { var script = sqlReader.Script; var sb = new StringBuilder(); //TODO: [DIREF] get options from DI through constructor using (var ctx = new MsSqlDataContext(connectionString, DataOptions.GetLegacyConfiguration(), CancellationToken.None)) { ctx.ExecuteReaderAsync(script, async(reader, cancel) => { do { if (reader.HasRows) { var first = true; while (await reader.ReadAsync(cancel).ConfigureAwait(false)) { if (first) { for (int i = 0; i < reader.FieldCount; i++) { sb.Append(reader.GetName(i)).Append("\t"); } Logger.LogMessage(sb.ToString()); sb.Clear(); first = false; } for (int i = 0; i < reader.FieldCount; i++) { sb.Append(reader[i]).Append("\t"); } Logger.LogMessage(sb.ToString()); sb.Clear(); } } } while (await reader.NextResultAsync(cancel).ConfigureAwait(false)); return(Task.FromResult(0)); }).GetAwaiter().GetResult(); } } Logger.LogMessage("Script is successfully executed."); }
public void DC_MSSQL_Construction_ConnectionInfo_Master() { var connectionInfo = new ConnectionInfo { DataSource = "DataSource1", InitialCatalog = InitialCatalog.Master, InitialCatalogName = "InitialCatalog1" }; // ACTION var connectionString = MsSqlDataContext.GetConnectionString(connectionInfo) ?? ConnectionStrings.ConnectionString; // ASSERT var expected = "Data Source=DataSource1;Initial Catalog=master;Integrated Security=True"; Assert.AreEqual(expected, connectionString); }
public override void Execute(ExecutionContext context) { var connectionInfo = new ConnectionInfo { ConnectionName = (string)context.ResolveVariable(ConnectionName), DataSource = (string)context.ResolveVariable(DataSource), InitialCatalog = InitialCatalog, InitialCatalogName = (string)context.ResolveVariable(InitialCatalogName), UserName = (string)context.ResolveVariable(UserName), Password = (string)context.ResolveVariable(Password) }; var connectionString = MsSqlDataContext.GetConnectionString(connectionInfo); var initialData = InitialData.Load(new SenseNetServicesInitialData()); MsSqlDataInstaller.InstallInitialDataAsync(initialData, new MsSqlDataProvider(), connectionString, CancellationToken.None).GetAwaiter().GetResult(); }
public void DC_MSSQL_Construction_ConnectionInfo_UserPassword() { var connectionInfo = new ConnectionInfo { DataSource = "DataSource1", InitialCatalog = InitialCatalog.Initial, InitialCatalogName = "InitialCatalog1", UserName = "******", Password = "******" }; // ACTION var connectionString = MsSqlDataContext.GetConnectionString(connectionInfo) ?? ConnectionStrings.ConnectionString; // ASSERT var expected = "Data Source=DataSource1;Initial Catalog=InitialCatalog1;Integrated Security=False;Persist Security Info=False;User ID=User1;Password=123"; Assert.AreEqual(expected, connectionString); }
public void DC_MSSQL_Construction_ConnectionInfo() { var connectionInfo = new ConnectionInfo { DataSource = "DataSource1", InitialCatalog = InitialCatalog.Initial, InitialCatalogName = "InitialCatalog1" }; // ACTION var connectionStrings = new ConnectionStringOptions { Repository = "Data Source=ds;Initial Catalog=ic;Integrated Security=True" }; var connectionString = MsSqlDataContext.GetConnectionString(connectionInfo, connectionStrings); // ASSERT var expected = "Data Source=DataSource1;Initial Catalog=InitialCatalog1;Integrated Security=True"; Assert.AreEqual(expected, connectionString); }
private bool ExecuteSql(string script, ExecutionContext context) { var connectionInfo = new ConnectionInfo { DataSource = (string)context.ResolveVariable(DataSource), InitialCatalogName = (string)context.ResolveVariable(InitialCatalogName), UserName = (string)context.ResolveVariable(UserName), Password = (string)context.ResolveVariable(Password) }; var connectionString = MsSqlDataContext.GetConnectionString(connectionInfo) ?? ConnectionStrings.ConnectionString; //TODO: [DIREF] get options from DI through constructor using (var ctx = new MsSqlDataContext(connectionString, DataOptions.GetLegacyConfiguration(), CancellationToken.None)) { object result; try { result = ctx.ExecuteScalarAsync(script).GetAwaiter().GetResult(); } catch (Exception ex) { throw new PackagingException("Error during SQL script execution. " + ex); } if (result == null || Convert.IsDBNull(result)) { return(false); } if (result is bool @bool) { return(@bool); } if (result is byte @bybte) { return(@bybte > 0); } if (result is decimal @decimal) { return(@decimal > 0); } if (result is double @double) { return(@double > 0); } if (result is float @float) { return(@float > 0); } if (result is int @int) { return(@int > 0); } if (result is long @long) { return(@long > 0); } if (result is sbyte @sbyte) { return(@sbyte > 0); } if (result is short @short) { return(@short > 0); } if (result is uint @uint) { return(@uint > 0); } if (result is ulong @ulong) { return(@ulong > 0); } if (result is ushort @ushort) { return(@ushort > 0); } if (result is string @string) { return(!string.IsNullOrEmpty(@string)); } } return(false); }