private Category GetCategoryReadOnly(ID itemId, string language)
        {
            var catalogRepository = DependencyResolver.Current.GetService <ICatalogRepository>();
            var externalInfo      = catalogRepository.GetExternalIdInformation(itemId.Guid);

            if (externalInfo == null || externalInfo.CommerceItemType != CommerceItemType.Category)
            {
                return(null);
            }
            var culture = CommerceUtility.ConvertLanguageToCulture(language);

            return(catalogRepository.GetCategoryReadOnly(externalInfo.CatalogName, externalInfo.CategoryName, culture));
        }
        /// <summary>
        /// Gets the child variants read only.
        /// </summary>
        /// <param name="itemId">The item identifier.</param>
        /// <param name="language">The language.</param>
        /// <returns>Product variant collection.</returns>
        private Category GetCategoryReadOnly(ID itemId, string language)
        {
            Category category = null;

            var catalogRepository = CommerceTypeLoader.CreateInstance <ICatalogRepository>();
            var externalInfo      = catalogRepository.GetExternalIdInformation(itemId.Guid);

            if (externalInfo != null && externalInfo.CommerceItemType == CommerceItemType.Category)
            {
                var culture = CommerceUtility.ConvertLanguageToCulture(language);
                category = catalogRepository.GetCategoryReadOnly(externalInfo.CatalogName, externalInfo.CategoryName, culture) as Category;
            }

            return(category);
        }
        /// <summary>
        /// Gets the child variants read only.
        /// </summary>
        /// <param name="itemId">The item identifier.</param>
        /// <param name="language">The language.</param>
        /// <returns>Product variant collection.</returns>
        private IEnumerable <Variant> GetChildVariantsReadOnly(ID itemId, string language)
        {
            var catalogRepository = CommerceTypeLoader.CreateInstance <ICatalogRepository>();
            var externalInfo      = catalogRepository.GetExternalIdInformation(itemId.Guid);

            if (externalInfo != null && externalInfo.CommerceItemType == CommerceItemType.ProductFamily)
            {
                var culture       = CommerceUtility.ConvertLanguageToCulture(language);
                var productFamily = catalogRepository.GetProductReadOnly(externalInfo.CatalogName, externalInfo.ProductId, culture) as ProductFamily;
                if (productFamily != null && productFamily.Variants.Count > 0)
                {
                    return(productFamily.Variants);
                }
            }

            return(new List <Variant>());
        }
        private IEnumerable <Variant> GetChildVariantsReadOnly(ID itemId, string language)
        {
            var catalogRepository = DependencyResolver.Current.GetService <ICatalogRepository>();
            var externalInfo      = catalogRepository.GetExternalIdInformation(itemId.Guid);

            if (externalInfo == null || externalInfo.CommerceItemType != CommerceItemType.ProductFamily)
            {
                return(Enumerable.Empty <Variant>());
            }

            var culture       = CommerceUtility.ConvertLanguageToCulture(language);
            var productFamily = catalogRepository.GetProductReadOnly(externalInfo.CatalogName, externalInfo.ProductId, culture) as ProductFamily;

            if (productFamily != null && productFamily.Variants.Count > 0)
            {
                return(productFamily.Variants);
            }

            return(Enumerable.Empty <Variant>());
        }