public Artikel LadeArtikelMitKategorien(int artikelNummer) { // Todo: // Try to load a previous version from another store (i.e. db) // if we have one, only get new events starting from the version of the entity from the other store // var article = _dbContext.Articles.Find(artikelNummer)... var events = _store.Get(artikelNummer); // , article?.Version ?? 0 if (!events.Any()) { return(null); } // if we already got the entity from the other store, do not create via factory... // var article = article ?? _factory.CreateEntity<Artikel>(artikelNummer); var article = _factory.CreateEntity <Artikel>(artikelNummer); foreach (var evt in events) { article.ApplyEvent(evt); } _logger?.LogInformation("Artikel {ArtikelNummer} wurde geladen: {ArtikelBezeichnung}", artikelNummer, article.Bezeichnung); article.EventRaised += (s, e) => { _store.Store(e.Event); }; return(article.ArtikelNummer > 0 ? article : null); }