/// <returns>A task that represents the asynchronous operation</returns>
        public virtual async Task <IActionResult> GetProductCombinations(int productId)
        {
            var product = await _productService.GetProductByIdAsync(productId);

            if (product == null)
            {
                return(NotFound());
            }

            var model = await _productModelFactory.PrepareProductCombinationModelsAsync(product);

            return(Ok(model));
        }