private ProductCatalog CreateProductCatalog(ProductCatalogGroup catalogGroup)
        {
            var catalogDefinitionType = DefinitionType.SingleOrDefault(x => x.Name == "Product Catalogs");
            var catalogDefinition     = Definition.SingleOrDefault(x => x.DefinitionType == catalogDefinitionType);
            var catalog = catalogGroup.ProductCatalogs.SingleOrDefault(c => c.Name == _catalogName) ??
                          new ProductCatalogFactory().NewWithDefaults(catalogGroup, _catalogName, catalogDefinition.Guid);

            catalog.DisplayOnWebSite       = true;
            catalog.Deleted                = false;
            catalog.ShowPricesIncludingVAT = true;

            // Versions of CatalogFactory prior to 3.6 did not
            // add catalog to catalog group. Need to do it
            // if not already done to make sure roles and
            // permissions are created properly.
            if (!catalogGroup.ProductCatalogs.Contains(catalog))
            {
                catalogGroup.ProductCatalogs.Add(catalog);
            }

            catalog.Save();

            var priceGroup = PriceGroup.SingleOrDefault(p => p.Name == "EUR 15 pct");

            if (priceGroup != null)
            {
                catalog.PriceGroup = priceGroup;
            }

            catalog.Save();
            return(catalog);
        }
        private ProductCatalogGroup CreateCatalogGroup()
        {
            var catalogGroupDefinitionType = DefinitionType.SingleOrDefault(x => x.Name == "Product Catalog Groups");
            var catalogGroupDefinitionGuid = Definition.SingleOrDefault(x => x.DefinitionType == catalogGroupDefinitionType).Guid;
            var group = ProductCatalogGroup.SingleOrDefault(c => c.Name == _catalogGroupName) ?? new ProductCatalogGroupFactory().NewWithDefaults(_catalogGroupName, catalogGroupDefinitionGuid);

            group.ProductReviewsRequireApproval = true;
            group.Deleted = false;
            group.CreateCustomersAsMembers = false;
            group.DomainId = null;
            group.Save();
            group.OrderNumberSerie = GetDefaultOrderNumberSeries();
            group.EmailProfile     = GetDefaultEmailProfile();
            group.Save();
            return(group);
        }