public void Neuanlage(string bezeichnung, IEnumerable <string> kategorien) { if (String.IsNullOrWhiteSpace(bezeichnung)) { throw new ArtikelException("Bezeichnung darf nicht leer sein."); } if (IsDeleted) { throw new ArtikelException("Gelöschter Artikel kann nicht neu angelegt werden"); } var evt = new ArtikelAngelegtEvent() { TimeStamp = DateTime.UtcNow, Version = 1, Type = nameof(ArtikelAngelegtEvent), AggregateId = ArtikelNummer, Artikelbezeichnung = bezeichnung, Kategorien = kategorien ?? new string[0], }; ApplyEvent(evt); OnEventRaised(new EventRaisedEventArgs(evt)); }
private void Apply(ArtikelAngelegtEvent evt) { Bezeichnung = evt.Artikelbezeichnung; foreach (var kategorie in evt.Kategorien) { Kategorien.Add(new ArtikelKategorie() { ArtikelNummer = ArtikelNummer, Name = kategorie, Artikel = this }); } }