private async Task CancelTransfer(MessageHeader header, CancelTransferCommandContent content)
        {
            var transactionId = header?.TransactionId;
            var transaction   = content?.Transaction;

            var   initialTransfer  = new InitialTransfer(transactionId, transaction.AccountFromId, transaction.AccountToId, transaction.Amount);
            Event transferCanceled = initialTransfer.CancelTransfer();

            await repository.AddAsync(initialTransfer);

            await eventProducer.ProduceAsync(transferCanceled);
        }
        private async Task CancelTransferAsync(MessageHeader header, CancelTransferCommandContent content)
        {
            var transactionId = header?.TransactionId;
            var transaction   = content?.Transaction;

            var   transfer         = new CheckingAccountTransfer();
            Event tranferCancelled = transfer.CancelTranferAmountBetweenAccounts(transactionId, transaction.AccountFromId, transaction.AccountToId, transaction.Amount);

            foreach (var line in transfer.CheckingAccountLines)
            {
                await repository.AddAsync(line);
            }

            await eventProducer.ProduceAsync(tranferCancelled);
        }