コード例 #1
0
        public void Apply(ReturnOfCapitalOccurredEvent @event)
        {
            var holding = _Holdings[@event.Stock];

            if (holding == null)
            {
                throw new NoSharesOwnedException("No shares owned");
            }

            var returnOfCapital = new ReturnOfCapital
            {
                Id                    = @event.TransactionId,
                Date                  = @event.Date,
                Stock                 = holding.Stock,
                Comment               = @event.Comment,
                RecordDate            = @event.RecordDate,
                Amount                = @event.Amount,
                CreateCashTransaction = @event.CreateCashTransaction
            };

            var handler = _TransactionHandlers.GetService <ReturnOfCapital>();

            handler.Apply(returnOfCapital, holding, _CashAccount);
            _Transactions.Add(returnOfCapital);
        }
コード例 #2
0
        public void ReturnOfCapitalReceived(Guid stockId, Date paymentDate, Date recordDate, decimal amount, bool createCashTransaction, string comment, Guid transactionId)
        {
            var @event = new ReturnOfCapitalOccurredEvent(Id, Version, transactionId, paymentDate, stockId, comment)
            {
                RecordDate            = recordDate,
                Amount                = amount,
                CreateCashTransaction = createCashTransaction
            };

            Apply(@event);

            PublishEvent(@event);
        }