public async Task <IActionResult> RemoveBasketItem(Guid basketId, string sku)
        {
            var entity = await basketService.RemoveItemAsync(basketId, sku);

            var result = BasketModel.ToModel(entity.Result, mapper);

            return(Ok(result));
        }
        public async Task <IActionResult> GetBasketById(Guid basketId)
        {
            var entity = await basketService.GetAsync(basketId);

            var model = BasketModel.ToModel(entity.Result, mapper);

            return(Ok(model));
        }
        public async Task <IActionResult> AddBasketItem(Guid basketId, [FromBody] ProductModel item)
        {
            var entity = await basketService.AddItemAsync(basketId, item.ToDomain <Product>(mapper));

            var result = BasketModel.ToModel(entity.Result, mapper);

            return(Ok(result));
        }
        public async Task <IActionResult> CreateBasket()
        {
            ////item.IsNull().Throw<InvalidParameterException>(string.Format(Messages.CannotBeNull, "item"));

            var entity = await basketService.CreateAsync();

            var result = BasketModel.ToModel(entity.Result, mapper);

            var urlHelper = urlHelperFactory.GetUrlHelper(ControllerContext);

            return(new CreatedResult(string.Empty, result));
        }