public void ExecuteTransaction(IDbConnectionAbstraction connectionAbstraction, MapTransactionWrapper transactionWrapper, ref MapResponse response)
{
IMapTransaction transaction = (IMapTransaction)transactionWrapper;
SqlCommand command = SelectDeleteRelationshipDescriptorsMetadataCommand(connectionAbstraction.Connection, transactionWrapper.RelationshipParameter.Value);
connectionAbstraction.Open();
SqlDataReader reader = command.ExecuteReader();
if (reader.Read())
{
Relationship deletedRelationship = new Relationship();
deletedRelationship.LoadElement(reader);
response.Changes.Add(new MapChange(transaction.TransactionId, transactionWrapper.ResponseParameter.Id, deletedRelationship, TransactionType.DeleteRelationship));
if (reader.NextResult())
{
while (reader.Read())
{
Descriptor deletedDescriptor = new Descriptor();
deletedDescriptor.LoadElement(reader);
response.Changes.Add(new MapChange(transaction.TransactionId, transactionWrapper.ResponseParameter.Id, deletedDescriptor, TransactionType.DeleteRelationship));
}
}
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.DeleteRelationship));
}
}
transactionWrapper.ResponseParameter.Value = deletedRelationship.RelationshipUid;
}
connectionAbstraction.Close();
}