Skip to content

Commit f8d5bcd

Browse files
Merge pull request #183 from AntonioFalcao/feature/code-smell
Code Smell
2 parents e216454 + 30f7a66 commit f8d5bcd

1 file changed

Lines changed: 13 additions & 36 deletions

File tree

src/Dotnet6.GraphQL4.Repositories.Abstractions/Transactions/TransactionScopeExecutor.cs

Lines changed: 13 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,17 @@ namespace Dotnet6.GraphQL4.Repositories.Abstractions.Transactions
77
{
88
public class TransactionScopeExecutor<T>
99
{
10-
private TransactionScopeOption _scopeOption;
10+
private readonly Func<T> _operation;
11+
private readonly Func<CancellationToken, Task<T>> _operationAsync;
12+
private readonly TransactionOptions _transactionOptions = new();
13+
1114
private TransactionScopeAsyncFlowOption _asyncFlowOption;
12-
1315
private Func<bool> _condition;
1416
private Func<CancellationToken, Task<bool>> _conditionAsync;
15-
16-
private readonly TransactionOptions _transactionOptions;
17-
private readonly Func<T> _operation;
18-
private readonly Func<CancellationToken, Task<T>> _operationAsync;
17+
private TransactionScopeOption _scopeOption;
1918

2019
public TransactionScopeExecutor() { }
21-
20+
2221
public TransactionScopeExecutor(Func<T> operation)
2322
{
2423
_operation = operation;
@@ -52,7 +51,7 @@ public TransactionScopeExecutor<T> WithCondition(Func<bool> condition)
5251
_condition = condition;
5352
return this;
5453
}
55-
54+
5655
public TransactionScopeExecutor<T> WithConditionAsync(Func<CancellationToken, Task<bool>> conditionAsync)
5756
{
5857
_conditionAsync = conditionAsync;
@@ -68,42 +67,20 @@ public T Execute(Func<T> operation)
6867
}
6968

7069
public T Execute()
71-
{
72-
using var scope = CreateScope();
73-
var result = _operation();
74-
75-
if (_condition())
76-
scope.Complete();
77-
78-
return result;
79-
}
70+
=> Execute(_operation);
71+
72+
public Task<T> ExecuteAsync(CancellationToken cancellationToken)
73+
=> ExecuteAsync(_operationAsync, cancellationToken);
8074

81-
public async Task<T> ExecuteAsync(CancellationToken cancellationToken)
82-
{
83-
using var scope = CreateScope();
84-
var result = await _operationAsync(cancellationToken);
85-
86-
if (await _conditionAsync(cancellationToken))
87-
scope.Complete();
88-
89-
return result;
90-
}
91-
9275
public async Task<T> ExecuteAsync(Func<CancellationToken, Task<T>> operationAsync, CancellationToken cancellationToken)
9376
{
9477
using var scope = CreateScope();
9578
var result = await operationAsync(cancellationToken);
96-
97-
if (await _conditionAsync(cancellationToken))
98-
scope.Complete();
99-
79+
if (await _conditionAsync(cancellationToken)) scope.Complete();
10080
return result;
10181
}
10282

10383
private TransactionScope CreateScope()
104-
=> new(
105-
scopeOption: _scopeOption,
106-
transactionOptions: _transactionOptions,
107-
asyncFlowOption: _asyncFlowOption);
84+
=> new(_scopeOption, _transactionOptions, _asyncFlowOption);
10885
}
10986
}

0 commit comments

Comments
 (0)