示例#1
0
 private void OnUpdateProduct(ProductUpdateEvent @event)
 {
     Id              = @event.Id;
     ProductName     = @event.ProductName;
     SupplierID      = @event.SupplierID;
     CategoryID      = @event.CategoryID;
     QuantityPerUnit = @event.QuantityPerUnit;
     UnitPrice       = @event.UnitPrice;
     UnitsInStock    = @event.UnitsInStock;
 }
示例#2
0
        public async Task <Response <ProductDetailApiModel> > Handle(UpdateProductCommand request, CancellationToken cancellationToken)
        {
            await _repo.UpdateProductAsync(request, cancellationToken).ConfigureAwait(false);

            await _repo.SaveAsync(cancellationToken).ConfigureAwait(false);

            var model = _mapper.Map <ProductDetailApiModel>(await _repo.GetProductByIdAsync(request.Id, cancellationToken));

            var result = new Response <ProductDetailApiModel>(model, ResponseStatus.Success);

            var updateEvent = new ProductUpdateEvent(model);

            await _mediator.Publish(updateEvent, cancellationToken);

            return(result);
        }
示例#3
0
        public ProductViewModel CreateViewModel(object @event)
        {
            switch (@event)
            {
            case ProductAddEvent x:

                ProductAddEvent productAddEvent = @event as ProductAddEvent;
                return(_mapper.Map <ProductViewModel>(productAddEvent));

            case ProductUpdateEvent x:

                ProductUpdateEvent productUpdateEvent = @event as ProductUpdateEvent;
                return(_mapper.Map <ProductViewModel>(productUpdateEvent));

            case ProductRemoveEvent x:

                ProductRemoveEvent productRemoveEvent = @event as ProductRemoveEvent;
                return(_mapper.Map <ProductViewModel>(productRemoveEvent));

            default:
                return(null);
            }
        }
示例#4
0
 public Task Handle(ProductUpdateEvent notification, CancellationToken cancellationToken)
 {
     _eventBus.AddEvent(notification);
     return(Task.CompletedTask);
 }