public void Handle(TagChangedEvent evnt) { var key = KeyUtils.GetStateKey(evnt.AggregateId); var state = _db.GetObject <BlogState>(key); if (state == null) { throw new Exception("Blog has to be started first."); } var tags = state .Posts .SelectMany(_ => _.Tags) .Where(_ => _.TagUrl == evnt.Url) .ToList(); foreach (var tag in tags) { tag.TagTitle = evnt.Title; tag.TagUrl = evnt.Url; } _db.SetObject(key, state); }
public void Apply(TagChangedEvent evnt) { var tag = _tags.FirstOrDefault(_ => string.Equals(_.Url, evnt.Url)); tag.Title = evnt.Title; }