Beispiel #1
0
        public override async Task Handle(TEvent @event)
        {
            if (_transactionType.HasValue)
            {
                using (var transaction = await _transactionAccessor.BeginTransaction(_transactionType.Value))
                {
                    await Decorated.Handle(@event);

                    transaction.Commit();
                }
            }
            else
            {
                await Decorated.Handle(@event);
            }
        }
        public override async Task <Result <TOut> > Handle(TIn input)
        {
            if (_transactionType.HasValue)
            {
                using (var transaction = await _transactionAccessor.BeginTransaction(_transactionType.Value))
                {
                    var result = await Decorated.Handle(input);

                    if (result.IsSuccess)
                    {
                        transaction.Commit();
                    }

                    return(result);
                }
            }

            return(await Decorated.Handle(input));
        }