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); }
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); }