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