public async Task Persist(IRegionStockAggregate regionStockAggregate) { if (string.IsNullOrEmpty(regionStockAggregate.Version)) { await CreateRegionStock(RegionStockDocument.CreateFrom(regionStockAggregate)); } else { await UpdateRegionStock(RegionStockDocument.CreateFrom(regionStockAggregate)); } }
private void PublishRegionStockChanged(IRegionStockAggregate stockQuantityAggregate) { foreach (var regionStock in stockQuantityAggregate.RegionStocks) { if (regionStock.Status.IsChanged) { var regionStockStatusChanged = new RegionStockStatusChangedV1(regionStock.Region, stockQuantityAggregate.VariantId, (Contracts.StockStatus)regionStock.Status.Value, regionStock.Version); var brokeredMessage = new BrokeredMessage(regionStockStatusChanged); brokeredMessage.TimeToLive = TimeSpan.FromMinutes(30); _stockQuantityTopicClient.Send(brokeredMessage); } } }
public static RegionStockDocument CreateFrom(IRegionStockAggregate stockQuantityAggregate) { return(new RegionStockDocument(stockQuantityAggregate.VariantId, stockQuantityAggregate.WarehouseAvailableStocks, stockQuantityAggregate.RegionStocks, stockQuantityAggregate.Version)); }