|
2 | 2 | using System;
|
3 | 3 | using System.Collections.Generic;
|
4 | 4 | using System.Data;
|
| 5 | +using System.Data.Common; |
5 | 6 | using System.Threading.Tasks;
|
6 | 7 |
|
7 | 8 | namespace Spiffy
|
@@ -251,99 +252,40 @@ public void Dispose()
|
251 | 252 | _transaction.Dispose();
|
252 | 253 | }
|
253 | 254 |
|
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()); |
267 | 257 |
|
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()); |
281 | 260 |
|
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); |
295 | 263 |
|
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); |
309 | 266 |
|
310 | 267 | private void DoMany(string sql, IEnumerable<DbParams> paramList, Action<IDbCommand> func)
|
311 | 268 | {
|
312 |
| - try |
| 269 | + var cmd = new DbCommandBuilder(_transaction, sql).Build(); |
| 270 | + |
| 271 | + foreach (var param in paramList) |
313 | 272 | {
|
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); |
327 | 276 | }
|
| 277 | + |
328 | 278 | }
|
329 | 279 |
|
330 | 280 | private async Task DoManyAsync(string sql, IEnumerable<DbParams> paramList, Func<System.Data.Common.DbCommand, Task> func)
|
331 | 281 | {
|
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) |
344 | 285 | {
|
345 |
| - Rollback(); |
346 |
| - throw; |
| 286 | + cmd.Parameters.Clear(); |
| 287 | + cmd.SetDbParams(param); |
| 288 | + await func(cmd); |
347 | 289 | }
|
348 | 290 | }
|
349 | 291 | }
|
|
0 commit comments