コード例 #1
0
        public async Task OnDomainEventAsync(IDomainEventingContext context, DepositTransactionSubmittedDomainEvent @event, CancellationToken token = default)
        {
            var sql = $"UPDATE `{Tables.BankAccounts}` SET `Balance`=`Balance`+@Amount WHERE `Id`=@AccountId;";

            var po = new
            {
                AccountId = @event.AggregateRootId.Id,
                Amount    = @event.Money.Amount
            };

            await _db.ExecuteAsync(sql, po, token);
        }
コード例 #2
0
        /// <summary>
        /// 4. 从银行账户聚合根,收到存款账户交易已提交的领域事件,向存款交易聚合根发起确认。
        /// </summary>
        /// <param name="context">事件处理上下文</param>
        /// <param name="event"></param>
        public void OnDomainEvent(IDomainEventingContext context, DepositTransactionSubmittedDomainEvent @event)
        {
            var command = new ConfirmDepositTransactionSubmittedDomainCommand(@event.TransactionId, @event.AccountBalance, @event.AccountInAmountInFlight, @event.AccountOutAmountInFlight);

            context.PublishDomainCommand(command);
        }