예제 #1
0
        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));
        }
예제 #2
0
        private void Apply(ArtikelAngelegtEvent evt)
        {
            Bezeichnung = evt.Artikelbezeichnung;

            foreach (var kategorie in evt.Kategorien)
            {
                Kategorien.Add(new ArtikelKategorie()
                {
                    ArtikelNummer = ArtikelNummer, Name = kategorie, Artikel = this
                });
            }
        }