public async Task SetProductOnSale(Guid productId, DateTime?from, DateTime?to) { try { var product = await Repository.GetByKeyAsync <Product>(productId); if (from == null) { product.SetOnSale(); } else if (to == null) { product.SetOnSale((DateTime)from); } else { product.SetOnSale((DateTime)from, (DateTime)to); } await Repository.SaveChangesAsync(); var @event = new ProductSetOnSaleEvent(productId); EventBus.RaiseEvent(@event); } catch { throw; } }
public void Handle(ProductSetOnSaleEvent @event) { try { EventStore.Save(@event); } catch { throw; } }