public async Task <Unit> Handle(UpdateBasketCommand request, CancellationToken cancellationToken) { var products = request.Items.Select(x => new KeyValuePair <int, int>(x.ProductId, x.Quantity)).ToList(); await _mediator.Publish(new CheckStockEvent(products), cancellationToken); var basket = new Basket(request.CustomerId); basket.AddBasketItems(request.Items.Select(x => x.Map <BasketItem>()).ToList()); await _basketRepository.UpdateBasketAsync(basket); return(Unit.Value); }