public int Handle(AddReviewCommand command) { // command validation var review = new Review(command.ProductId, command.UserId, command.Rating); _database.Reviews.Add(review); _database.SaveChanges(); var @event = new ReviewAddedEvent(review.Id, review.UserId, review.ProductId, review.Rating); _mediator.Publish(@event); return(review.Id); }
public void Apply(ReviewAddedEvent @event) { Count++; Sum += @event.Rating; Average = Sum / Count; }
public void Apply(ReviewAddedEvent @event) { Review.Apply(@event); }