コード例 #1
0
        public Task BatchCreate(MessageContext context, BatchCreateTransactionEvent inputEvent)
        {
            var transactions = inputEvent.Requests
                               .Select(r => transactionsRepository.Create(r.Title, r.Amount, r.Recipient, r.Sender, r.PaymentId, r.CardId))
                               .ToArray();

            return(Task.CompletedTask);
        }
コード例 #2
0
        public Task BatchTransfer(MessageContext context, BatchTransferEvent inputEvent)
        {
            if (inputEvent.Transfers.Any(r => !accountsRepository.CanTransfer(r.AccountId, r.Recipient, r.Amount)))
            {
                throw new ArgumentException("Cannot transfer founds.");
            }

            var transfers = inputEvent.Transfers.Select(r => TransferToCreateTransactionEvent(r)).ToArray();
            var batchAddTransactionsEvent = new BatchCreateTransactionEvent
            {
                Requests = transfers
            };

            foreach (var t in inputEvent.Transfers)
            {
                accountsRepository.Transfer(t.AccountId, t.Recipient, t.Amount);
            }

            //info do kogo ma wrocic
            publishingRouter.Publish(Queues.Transactions, batchAddTransactionsEvent, context.FlowId, context.ReplyTo);
            return(Task.CompletedTask);
        }