public void ExecuteTransaction(IDbConnectionAbstraction connectionAbstraction, MapTransactionWrapper transactionWrapper, ref MapResponse response)
{
IMapTransaction transaction = (IMapTransaction)transactionWrapper;
SqlCommand command = SelectDeleteNodeRelationshipsDescriptorsMetadataCommand(connectionAbstraction.Connection, transactionWrapper.NodeParameter.Value);
connectionAbstraction.Open();
SqlDataReader reader = command.ExecuteReader();
if (reader.Read())
{
Node deletedNode = new Node();
deletedNode.LoadElement(reader);
response.Changes.Add(new MapChange(transaction.TransactionId, transactionWrapper.ResponseParameter.Id, deletedNode, TransactionType.DeleteNode));
if (reader.NextResult())
{
while (reader.Read())
{
Metadata deletedMetadata = new Metadata();
deletedMetadata.LoadElement(reader);
response.Changes.Add(new MapChange(transaction.TransactionId, transactionWrapper.ResponseParameter.Id, deletedMetadata, TransactionType.DeleteMetadata));
}
}
if (reader.NextResult())
{
while (reader.Read())
{
Relationship deletedRelationship = new Relationship();
deletedRelationship.LoadElement(reader);
response.Changes.Add(new MapChange(transaction.TransactionId, transactionWrapper.ResponseParameter.Id, deletedRelationship, TransactionType.DeleteRelationship));
}
}
transactionWrapper.ResponseParameter.Value = deletedNode.NodeUid;
}
connectionAbstraction.Close();
}