public void ExecuteDelete(CTable table) { var cassandraSession = CassandraCluster.Connect(table.KeySpace); foreach (var row in table.Data) { StringBuilder cqlQuery = new StringBuilder(); cqlQuery.Append($"DELETE FROM {table.Name} "); cqlQuery.Append("WHERE "); bool firstField = true; var cassandraParameters = new object[row.Count(x => x.IsPrimaryKey)]; var pkItemIndex = 0; foreach (var field in row.Where(x => x.IsPrimaryKey)) { if (firstField == false) { cqlQuery.Append(" AND "); } cqlQuery.Append($" {field.Name} = ? "); cassandraParameters[pkItemIndex] = field.Value; firstField = false; pkItemIndex++; } var ps = cassandraSession.Prepare(cqlQuery.ToString()); var cassandraStatement = ps.Bind(cassandraParameters); cassandraSession.Execute(cassandraStatement); } }
public void ExecuteInsert(CTable table) { var cassandraSession = CassandraCluster.Connect(table.KeySpace); foreach (var row in table.Data) { StringBuilder cqlQuery = new StringBuilder(); StringBuilder cqlValues = new StringBuilder(); cqlQuery.Append($"INSERT INTO {table.Name} "); cqlQuery.Append("("); bool firstField = true; var cassandraParameters = new object[row.Count()]; var itemIndex = 0; foreach (var field in row) { if (firstField == false) { cqlQuery.Append(","); cqlValues.Append(","); } cqlQuery.Append(field.Name); cqlValues.Append("?"); cassandraParameters[itemIndex] = field.Value; firstField = false; itemIndex++; } cqlQuery.Append(")"); cqlQuery.Append($" VALUES ({cqlValues.ToString()}); "); var ps = cassandraSession.Prepare(cqlQuery.ToString()); var cassandraStatement = ps.Bind(cassandraParameters); cassandraSession.Execute(cassandraStatement); } }