protected ContentTypeBase(IContentTypeBase parent, string alias)
        {
            Mandate.ParameterNotNull(parent, "parent");

            _alias                            = alias;
            _parentId                         = new Lazy <int>(() => parent.Id);
            _allowedContentTypes              = new List <ContentTypeSort>();
            _propertyGroups                   = new PropertyGroupCollection();
            _propertyTypes                    = new PropertyTypeCollection();
            _propertyTypes.CollectionChanged += PropertyTypesChanged;
            _additionalData                   = new Dictionary <string, object>();
        }
        protected ContentTypeBase(int parentId)
        {
            if (parentId == 0)
            {
                throw new ArgumentOutOfRangeException(nameof(parentId));
            }
            ParentId = parentId;

            _allowedContentTypes = new List <ContentTypeSort>();
            _propertyGroups      = new PropertyGroupCollection();

            // actually OK as IsPublishing is constant
            // ReSharper disable once VirtualMemberCallInConstructor
            _noGroupPropertyTypes = new PropertyTypeCollection(SupportsPublishing);
            _noGroupPropertyTypes.CollectionChanged += PropertyTypesChanged;

            _variations = ContentVariation.Nothing;
        }
        protected ContentTypeBase(IContentTypeBase parent, string alias)
        {
            if (parent == null)
            {
                throw new ArgumentNullException(nameof(parent));
            }
            SetParent(parent);

            _alias = alias;
            _allowedContentTypes = new List <ContentTypeSort>();
            _propertyGroups      = new PropertyGroupCollection();

            // actually OK as IsPublishing is constant
            // ReSharper disable once VirtualMemberCallInConstructor
            _noGroupPropertyTypes = new PropertyTypeCollection(SupportsPublishing);
            _noGroupPropertyTypes.CollectionChanged += PropertyTypesChanged;

            _variations = ContentVariation.Nothing;
        }