public async Task AddBasketItem(int productId) { var usersId = _currentUserProvider.GetId(); var basket = await _queries.GetUsersBasket(usersId, d => { }); if (basket == null) { basket = new Basket { UserId = usersId }; _unitOfWork.Add(basket); } var basketItem = new BasketItem { ProductId = productId, BasketId = basket.Id }; _unitOfWork.Add(basketItem); _basketCache.Invalidate(basket.Id); await _unitOfWork.PersistChanges(); }