コード例 #1
0
 public async Task Handle(
     ProductDeleted notification,
     CancellationToken cancellationToken)
 {
     _logger.LogInformation($"We publish the message {nameof(notification)}: {JsonSerializer.Serialize(notification)}");
     await _daprClient.PublishEventAsync("product-deleted", notification);
 }
コード例 #2
0
 private void Apply(ProductDeleted @event)
 {
     if (Products.Contains(@event.ProductId))
     {
         Products.Remove(@event.ProductId);
     }
 }
コード例 #3
0
        public void RemoveProduct(Guid productId)
        {
            var e = new ProductDeleted(productId);

            Apply(e);
            AddEvent(e);
        }
コード例 #4
0
        public async Task Delete(string productId)
        {
            var @event = await CreateEvent <object>(
                productId, EventTypes.ProductDeleted, null);

            var productDeleted = ProductDeleted.Create(@event, productId);

            messageQueue.Publish(productDeleted);
        }
コード例 #5
0
 void OnProductDeleted(ProductDeleted productDeleted)
 {
     lock (lock_)
     {
         if (CheckMessageSanity(productDeleted))
         {
             data.Remove(productDeleted.ProductId);
         }
     }
 }
コード例 #6
0
        public void Handle(ProductDeleted @event, CommerceInstance instance)
        {
            var languageStore    = GetLanguageStoreByInstance(instance.Name);
            var translationStore = GetTranlsationStoreByInstance(instance.Name);

            var key = new EntityKey(typeof(Product), @event.ProductId);

            foreach (var lang in languageStore.All())
            {
                translationStore.Delete(CultureInfo.GetCultureInfo(lang.Name), key);
            }
        }
コード例 #7
0
        private void Process(ProductDeleted productDeleted)
        {
            using (_unitOfWork)
            {
                var productReviews = _productReviewRepository.GetByProductId(productDeleted.ProductId);
                foreach (var productReview in productReviews)
                {
                    productReview.Delete();
                    _productReviewRepository.Update(productReview);
                }

                _unitOfWork.Commit();
            }
        }
コード例 #8
0
        IMessage <object> ConstructMessage <T>(Event @event)
        {
            var data = @event.Data;

            if (data == null)
            {
                throw new ArgumentNullException(nameof(@event.Data));
            }

            switch (data.Type)
            {
            case EventTypes.AmountUpdated:
                var amount = data.Payload as int?;
                if (amount != null)
                {
                    return((IMessage <object>)AmountUpdated.Create(@event, data.Id, amount.Value));
                }
                break;

            case EventTypes.ProductCreated:
                if (data.Payload is Product product)
                {
                    return((IMessage <object>)ProductCreated.Create(@event, product));
                }
                break;

            case EventTypes.ProductDeleted:
                return((IMessage <object>)ProductDeleted.Create(@event, data.Id));

            case EventTypes.TitleUpdated:
                var title = data.Payload as string;
                return((IMessage <object>)TitleUpdated.Create(@event, data.Id, title));

            default:
                break;
            }

            throw new ArgumentException($"InvalidEvent data: {data.Id}, " +
                                        $"{data.Type}, {data.Payload}");
        }
コード例 #9
0
 private void Apply(ProductDeleted @event)
 {
     Status = ProductStatus.Deleted;
 }
コード例 #10
0
        public async Task Handle(ProductDeleted @event)
        {
            await Task.Delay(1000);

            await Mediator.Send(@event);
        }
コード例 #11
0
 public void Handle(ProductDeleted @event, CommerceInstance instance)
 {
     DeleteIndex(@event.ProductId);
 }
コード例 #12
0
 public Task HandleAsync(ProductDeleted @event)
 {
     return(RemoveCacheAsync());
 }
コード例 #13
0
ファイル: ActiveProducts.cs プロジェクト: promontis/Even
 private void Delete(IPersistedEvent pe, ProductDeleted e)
 {
    
 }
コード例 #14
0
ファイル: ActiveProducts.cs プロジェクト: Stephanvs/Even
 private void Delete(IPersistedEvent pe, ProductDeleted e)
 {
 }