public void Apply(DrpParticipationChangedEvent @event)
        {
            Version++;

            var holding = _Holdings[@event.Holding];

            holding.ChangeDrpParticipation(@event.ParticipateInDrp);
        }
        public void ChangeDrpParticipation(Guid stockId, bool participateInDrp)
        {
            var holding = _Holdings[stockId];

            if (holding == null)
            {
                throw new ArgumentException("No holding found");
            }

            var @event = new DrpParticipationChangedEvent(Id, Version, holding.Id, participateInDrp);

            Apply(@event);

            PublishEvent(@event);
        }