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();
        }