private void WriteImportantBusinessDataToDatabase(string message, TransactionDetails transactionDetails) { // This will be committed when "select @@trancount" is 0. using (var connection = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["InconsistencyDemo"].ConnectionString)) { connection.Open(); var query = @"INSERT INTO [dbo].[ImportantBusinessData] ([Message], [CorrelationId]) VALUES (@message, @correlationId)"; using (var command = new SqlCommand(query, connection)) { command.Parameters.AddWithValue("@message", $"{message}. Transaction details: {transactionDetails}"); command.Parameters.AddWithValue("@correlationId", correlationId); command.ExecuteNonQuery(); } } }
private void WriteLogToDatabase(TransactionDetails transactionDetails) { // Making sure we always commit this one. using (new TransactionScope(TransactionScopeOption.Suppress)) { using (var connection = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["InconsistencyDemo"].ConnectionString)) { connection.Open(); var query = @"INSERT INTO [dbo].[LogData] ([TranCount], [Xact] , [TranId], [CorrelationId]) VALUES (@trancount, @xact, @tranid, @correlationId)"; using (var command = new SqlCommand(query, connection)) { command.Parameters.AddWithValue("@trancount", transactionDetails.TranCount); command.Parameters.AddWithValue("@xact", transactionDetails.XactState); command.Parameters.AddWithValue("@tranid", transactionDetails.TranId); command.Parameters.AddWithValue("@correlationId", correlationId); command.ExecuteNonQuery(); } } } }