/// <summary>
    /// Gets the options with names from external data source or database.
    /// </summary>
    /// <param name="skuIdOfProductWithCategories">Id of product with categories.</param>
    /// <param name="categoryId">The category id.</param>
    private Dictionary <int, string> GetOptionsWithNames(int skuIdOfProductWithCategories, int categoryId)
    {
        Dictionary <int, string> optionsWithName = new Dictionary <int, string>();

        if ((ExternalDataSource != null) && (ExternalDataSource.Count > 0))
        {
            // External data
            OptionCategoryInfo categoryInfo    = ExternalDataSource.Keys.First(k => k.CategoryID == categoryId);
            List <SKUInfo>     externalOptions = ExternalDataSource[categoryInfo];

            foreach (SKUInfo info in externalOptions)
            {
                optionsWithName.Add(info.SKUID, info.SKUName);
            }

            return(optionsWithName);
        }
        else
        {
            InfoDataSet <SKUInfo> dsOptions = VariantHelper.GetEnabledOptionsWithVariantOptions(skuIdOfProductWithCategories, categoryId);

            if (!DataHelper.DataSourceIsEmpty(dsOptions))
            {
                foreach (var option in dsOptions)
                {
                    optionsWithName.Add(option.SKUID, option.SKUName);
                }
            }

            return(optionsWithName);
        }
    }