resolveTransaction static method
Implementation
static Transaction resolveTransaction(
{Transaction? transaction, TransactionOperation? operation}) {
if (transaction == null &&
operation != null &&
operation._transactionResolved) {
return operation.transaction;
}
transaction ??= Transaction.executingTransaction;
if (transaction == null) {
return Transaction._(true);
}
var transactionExecutor = transaction.executor;
if (transactionExecutor != null &&
operation != null &&
operation.executor != transactionExecutor &&
operation is! TransactionOperationSubTransaction) {
var subTransaction = Transaction._(true, false, transaction);
var opSubTransaction = TransactionOperationSubTransaction(
operation.repositoryName,
operation.executor,
transaction,
subTransaction,
parentOperation: operation);
// ignore: discarded_futures
subTransaction.transactionFuture.then((result) {
// ignore: discarded_futures
opSubTransaction.finish(result);
});
return subTransaction;
}
return transaction;
}