public void Apply(StockPropertiesChangedEvent @event) { Version++; var newProperties = new StockProperties( @event.AsxCode, @event.Name, @event.Category); _Properties.Change(@event.ChangeDate, newProperties); }
public void ChangeProperties(Date changeDate, string newAsxCode, string newName, AssetCategory newAssetCategory) { if (!IsEffectiveAt(changeDate)) { throw new EffectiveDateException(String.Format("Stock not active at {0}", changeDate)); } var properties = Properties[changeDate]; var @event = new StockPropertiesChangedEvent(Id, Version, changeDate, newAsxCode, newName, newAssetCategory); Apply(@event); _Events.Add(@event); }