Пример #1
0
        /// <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);
        }
Пример #2
0
        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);
        }
Пример #3
0
 private void OnProductDeactivatedEvent(ProductDeactivatedEvent domainEvent)
 {
     IsActive = false;
 }