Skip to content

Commit eab282c

Browse files
committed
invalid rollback scenarios removed
1 parent 8a5803b commit eab282c

File tree

1 file changed

+22
-80
lines changed

1 file changed

+22
-80
lines changed

src/Spiffy/Batch/DbBatch.cs

Lines changed: 22 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System;
33
using System.Collections.Generic;
44
using System.Data;
5+
using System.Data.Common;
56
using System.Threading.Tasks;
67

78
namespace Spiffy
@@ -251,99 +252,40 @@ public void Dispose()
251252
_transaction.Dispose();
252253
}
253254

254-
private void Do(string sql, DbParams param, Action<IDbCommand> action)
255-
{
256-
try
257-
{
258-
var cmd = new DbCommandBuilder(_transaction, sql, param ?? new DbParams()).Build();
259-
action(cmd);
260-
}
261-
catch (FailedExecutionException)
262-
{
263-
Rollback();
264-
throw;
265-
}
266-
}
255+
private void Do(string sql, DbParams param, Action<IDbCommand> action) =>
256+
action(new DbCommandBuilder(_transaction, sql, param ?? new DbParams()).Build());
267257

268-
private T Do<T>(string sql, DbParams param, Func<IDbCommand, T> func)
269-
{
270-
try
271-
{
272-
var cmd = new DbCommandBuilder(_transaction, sql, param ?? new DbParams()).Build();
273-
return func(cmd);
274-
}
275-
catch (FailedExecutionException)
276-
{
277-
Rollback();
278-
throw;
279-
}
280-
}
258+
private T Do<T>(string sql, DbParams param, Func<IDbCommand, T> func) =>
259+
func(new DbCommandBuilder(_transaction, sql, param ?? new DbParams()).Build());
281260

282-
private async Task DoAsync(string sql, DbParams param, Func<System.Data.Common.DbCommand, Task> func)
283-
{
284-
try
285-
{
286-
var cmd = new DbCommandBuilder(_transaction).CommandText(sql).DbParams(param).Build();
287-
await func(cmd as System.Data.Common.DbCommand);
288-
}
289-
catch (FailedExecutionException)
290-
{
291-
Rollback();
292-
throw;
293-
}
294-
}
261+
private async Task DoAsync(string sql, DbParams param, Func<DbCommand, Task> func) =>
262+
await func(new DbCommandBuilder(_transaction).CommandText(sql).DbParams(param).Build() as DbCommand);
295263

296-
private async Task<T> DoAsync<T>(string sql, DbParams param, Func<System.Data.Common.DbCommand, Task<T>> func)
297-
{
298-
try
299-
{
300-
var cmd = new DbCommandBuilder(_transaction).CommandText(sql).DbParams(param).Build();
301-
return await func(cmd as System.Data.Common.DbCommand);
302-
}
303-
catch (FailedExecutionException)
304-
{
305-
Rollback();
306-
throw;
307-
}
308-
}
264+
private async Task<T> DoAsync<T>(string sql, DbParams param, Func<DbCommand, Task<T>> func) =>
265+
await func(new DbCommandBuilder(_transaction).CommandText(sql).DbParams(param).Build() as DbCommand);
309266

310267
private void DoMany(string sql, IEnumerable<DbParams> paramList, Action<IDbCommand> func)
311268
{
312-
try
269+
var cmd = new DbCommandBuilder(_transaction, sql).Build();
270+
271+
foreach (var param in paramList)
313272
{
314-
var cmd = new DbCommandBuilder(_transaction, sql).Build();
315-
316-
foreach (var param in paramList)
317-
{
318-
cmd.Parameters.Clear();
319-
cmd.SetDbParams(param);
320-
func(cmd);
321-
}
322-
}
323-
catch (FailedExecutionException)
324-
{
325-
Rollback();
326-
throw;
273+
cmd.Parameters.Clear();
274+
cmd.SetDbParams(param);
275+
func(cmd);
327276
}
277+
328278
}
329279

330280
private async Task DoManyAsync(string sql, IEnumerable<DbParams> paramList, Func<System.Data.Common.DbCommand, Task> func)
331281
{
332-
try
333-
{
334-
var cmd = new DbCommandBuilder(_transaction, sql).Build() as System.Data.Common.DbCommand;
335-
336-
foreach (var param in paramList)
337-
{
338-
cmd.Parameters.Clear();
339-
cmd.SetDbParams(param);
340-
await func(cmd);
341-
}
342-
}
343-
catch (FailedExecutionException)
282+
var cmd = new DbCommandBuilder(_transaction, sql).Build() as System.Data.Common.DbCommand;
283+
284+
foreach (var param in paramList)
344285
{
345-
Rollback();
346-
throw;
286+
cmd.Parameters.Clear();
287+
cmd.SetDbParams(param);
288+
await func(cmd);
347289
}
348290
}
349291
}

0 commit comments

Comments
 (0)