public void ConnectionStringBuilderTest() { var cs = new MonetDbConnectionStringBuilder(); Assert.AreEqual(cs.ConnectionString, cs.ToString()); Assert.AreEqual(cs.ConnectionString, "Host=localhost;Port=50000;PoolMinimum=0;PoolMaximum=100"); cs.Host = "localhost"; cs.Port = 12345; cs.Username = "******"; cs.Password = "******"; Assert.AreEqual(cs.ConnectionString, cs.ToString()); Assert.AreEqual(cs.ConnectionString, "Host=localhost;Port=12345;PoolMinimum=0;PoolMaximum=100;Username=testUser;Password=testPwd"); cs = new MonetDbConnectionStringBuilder { Host = "localhost", Port = 12345, Username = "******", Password = "******" }; Assert.AreEqual(cs.ConnectionString, cs.ToString()); Assert.AreEqual(cs.ConnectionString, "Host=localhost;Port=12345;PoolMinimum=0;PoolMaximum=100;Username=testUser;Password=testPwd"); cs = new MonetDbConnectionStringBuilder { ConnectionString = "HOST=localhost;PORT=12345;PoolMinimum=0;PoolMaximum=100;Username=testUser;Password=testPwd" }; Assert.AreEqual("localhost", cs.Host); Assert.AreEqual(12345, cs.Port); Assert.AreEqual("testUser", cs.Username); Assert.AreEqual("testPwd", cs.Password); }
public object Execute([FromBody] Request request) { try { var csb = new MonetDbConnectionStringBuilder { Host = request.Host, Port = request.Port, Username = request.Username, Password = request.Password, Database = request.Database }; using (var connection = new MonetDbConnection(csb.ToString())) { connection.Open(); using (var command = connection.CreateCommand()) { lastCommand = command; command.CommandText = request.Query; using (var reader = command.ExecuteReader()) { var result = new Result(reader.FieldCount); for (int i = 0; i < reader.FieldCount; i++) { result.Meta[i] = reader.GetName(i); } while (reader.Read()) { var row = new object[reader.FieldCount]; for (int i = 0; i < reader.FieldCount; i++) { row[i] = reader.GetValue(i); } result.Data.Add(row); } return(result); } } } } catch (Exception ex) { return(new { Error = ex.Message + Environment.NewLine + ex.StackTrace }); } }