/// <summary> /// Handle ProductDeactivatedEvent. /// </summary> /// <param name="productDeactivatedEvent">ProductDeactivatedEvent instance.</param> /// <param name="cancellationToken">Cancellation token.</param> /// <returns>Asynchronous task which can be awaited for completion.</returns> public async Task HandleAsync(ProductDeactivatedEvent productDeactivatedEvent, CancellationToken cancellationToken = default(CancellationToken)) { var product = await _productReadSideRepository.GetProductByIdAsync(productDeactivatedEvent.ProductId, cancellationToken); // Set read-side product to inactive. product.IsActive = false; await _productReadSideRepository.UpdateProductAsync(product, cancellationToken); }
private async Task DeactivateProduct(ProductDeactivatedEvent @event) { var entity = new ProductEntity { Id = @event.Id, PartitionKey = @event.Type.ToString(), RowKey = @event.Id.ToString(), Timestamp = DateTime.UtcNow, IsActive = false, ETag = "*" }; await _tableStorageRepository.UpdateAsync(TableReference, entity).ConfigureAwait(false); }
private void OnProductDeactivatedEvent(ProductDeactivatedEvent domainEvent) { IsActive = false; }