Class CatalogContentScannerExtension
Injects code specific to the catalog into the content type scanning mechanism. Responsible for handling synchronization between content types and the meta data plus layer.
Inheritance
Namespace: EPiServer.Commerce.Catalog.Provider.Construction
Assembly: EPiServer.Business.Commerce.dll
Version: 10.8.0Syntax
public class CatalogContentScannerExtension : ContentScannerExtension
  Constructors
CatalogContentScannerExtension(MetaDataTypeResolver, MetaDataPropertyResolver, IPropertyDefinitionTypeRepository, IContentTypeModelAssigner, MetaDataChangeEventHandler, HostType)
Initializes a new instance of the CatalogContentScannerExtension class.
Declaration
public CatalogContentScannerExtension(MetaDataTypeResolver metaDataTypeResolver, MetaDataPropertyResolver metaDataPropertyResolver, IPropertyDefinitionTypeRepository propertyDefinitionTypeRepository, IContentTypeModelAssigner contentTypeModelAssigner, MetaDataChangeEventHandler metaDataChangeEventHandler, HostType hostType)
  Parameters
| Type | Name | Description | 
|---|---|---|
| MetaDataTypeResolver | metaDataTypeResolver | The meta data type resolver.  | 
      
| MetaDataPropertyResolver | metaDataPropertyResolver | The meta data property resolver.  | 
      
| EPiServer.DataAbstraction.IPropertyDefinitionTypeRepository | propertyDefinitionTypeRepository | The property definition type repository.  | 
      
| EPiServer.DataAbstraction.RuntimeModel.IContentTypeModelAssigner | contentTypeModelAssigner | The content type model assigner.  | 
      
| MetaDataChangeEventHandler | metaDataChangeEventHandler | The metadata change event handler.  | 
      
| EPiServer.Framework.Initialization.HostType | hostType | The host type.  | 
      
Properties
ContentTypeModelScanners
The registred content type model scanners
Declaration
public virtual IEnumerable<IContentTypeModelScanner> ContentTypeModelScanners { get; set; }
  Property Value
| Type | Description | 
|---|---|
| System.Collections.Generic.IEnumerable<EPiServer.DataAbstraction.RuntimeModel.IContentTypeModelScanner> | 
MetaDataContext
Context used when loading and creating MetaClass.
Declaration
public virtual MetaDataContext MetaDataContext { get; set; }
  Property Value
| Type | Description | 
|---|---|
| MetaDataContext | 
Methods
AssignValuesToModel(ContentTypeModel)
Syncs a content type to a meta class.
Declaration
public override void AssignValuesToModel(ContentTypeModel typeModel)
  Parameters
| Type | Name | Description | 
|---|---|---|
| EPiServer.DataAbstraction.RuntimeModel.ContentTypeModel | typeModel | The type model.  | 
      
AssignValuesToProperties(ContentTypeModel)
Syncs properties to meta fields of a conten type/meta class.
Declaration
public override void AssignValuesToProperties(ContentTypeModel contentTypeModel)
  Parameters
| Type | Name | Description | 
|---|---|---|
| EPiServer.DataAbstraction.RuntimeModel.ContentTypeModel | contentTypeModel | The content type model.  | 
      
CreateMetaField(PropertyDefinitionModel, MetaDataType)
Creates MetaField from propertyDefinitionModel.
Declaration
protected virtual MetaField CreateMetaField(PropertyDefinitionModel propertyDefinitionModel, MetaDataType metaDataType)
  Parameters
| Type | Name | Description | 
|---|---|---|
| EPiServer.DataAbstraction.RuntimeModel.PropertyDefinitionModel | propertyDefinitionModel | The property definition to create the meta field from.  | 
      
| MetaDataType | metaDataType | The type of property.  | 
      
Returns
| Type | Description | 
|---|---|
| MetaField | 
IsValid(MetaDataType, MetaDataType)
Validates if the two types are compatible.
Declaration
protected virtual bool IsValid(MetaDataType typeFromCode, MetaDataType typeFromMetaData)
  Parameters
| Type | Name | Description | 
|---|---|---|
| MetaDataType | typeFromCode | The property type created from content data model.  | 
      
| MetaDataType | typeFromMetaData | The property type in Meta data plus.  | 
      
Returns
| Type | Description | 
|---|---|
| System.Boolean | 
  | 
      
SetMetaFieldAttribute<TAttribute>(String, MetaAttributeCollection, PropertyDefinitionModel, Func<TAttribute, Object>)
Sets a meta field attribute to a value specified in action.
Declaration
protected virtual void SetMetaFieldAttribute<TAttribute>(string name, MetaAttributeCollection metaFiledAttributes, PropertyDefinitionModel model, Func<TAttribute, object> action)
    where TAttribute : Attribute
  Parameters
| Type | Name | Description | 
|---|---|---|
| System.String | name | The name of the meta field attribute  | 
      
| MetaAttributeCollection | metaFiledAttributes | The meta field attributes.  | 
      
| EPiServer.DataAbstraction.RuntimeModel.PropertyDefinitionModel | model | The property definition model.  | 
      
| System.Func<TAttribute, System.Object> | action | The action used to get the value.  | 
      
Type Parameters
| Name | Description | 
|---|---|
| TAttribute | The attribute type, used to set the meta field attribute.  | 
      
SetMetaFieldAttributes(MetaAttributeCollection, PropertyDefinitionModel)
Sets meta field attributes. Override this method to set attributes.
Declaration
protected virtual void SetMetaFieldAttributes(MetaAttributeCollection metaFiledAttributes, PropertyDefinitionModel model)
  Parameters
| Type | Name | Description | 
|---|---|---|
| MetaAttributeCollection | metaFiledAttributes | The meta fild attributes that will be populated with data.  | 
      
| EPiServer.DataAbstraction.RuntimeModel.PropertyDefinitionModel | model | The property definition model, which will be used to set the value on the meta field attribute.  | 
      
ThrowIfAnyModelAttributeIsUnsupported(MetaDataType, PropertyDefinitionModel)
Throws an System.InvalidOperationException if any model attribute on propertyDefinitionModel is not supported by the metaDataType
Declaration
protected virtual void ThrowIfAnyModelAttributeIsUnsupported(MetaDataType metaDataType, PropertyDefinitionModel propertyDefinitionModel)
  Parameters
| Type | Name | Description | 
|---|---|---|
| MetaDataType | metaDataType | The meta data type to validate.  | 
      
| EPiServer.DataAbstraction.RuntimeModel.PropertyDefinitionModel | propertyDefinitionModel | The property definition model, which contains the model attribute to validate.  | 
      
Exceptions
| Type | Condition | 
|---|---|
| System.InvalidOperationException | Will be thrown if any attribute is unsupported.  | 
      
ThrowIfModelContainsAttribute(PropertyDefinitionModel, Type[])
Throws an System.InvalidOperationException if any model attribute on propertyDefinitionModel is not supported by the types
Declaration
protected virtual void ThrowIfModelContainsAttribute(PropertyDefinitionModel propertyDefinitionModel, params Type[] types)
  Parameters
| Type | Name | Description | 
|---|---|---|
| EPiServer.DataAbstraction.RuntimeModel.PropertyDefinitionModel | propertyDefinitionModel | The property definition model, which contains the model attribute to validate.  | 
      
| System.Type[] | types | The model attributes to validate.  | 
      
Exceptions
| Type | Condition | 
|---|---|
| System.InvalidOperationException | Will be thrown if any attribute is unsupported.  | 
      
UpdateMetaField(PropertyDefinitionModel, MetaField)
Updates the specifed MetaField from the specified EPiServer.DataAbstraction.RuntimeModel.PropertyDefinitionModel.
Declaration
protected virtual void UpdateMetaField(PropertyDefinitionModel propertyDefinitionModel, MetaField metaField)
  Parameters
| Type | Name | Description | 
|---|---|---|
| EPiServer.DataAbstraction.RuntimeModel.PropertyDefinitionModel | propertyDefinitionModel | The property definition to update the meta field from.  | 
      
| MetaField | metaField | The meta field that will be updated  | 
      
Validate(IEnumerable<ContentTypeModel>)
Validate content types so that properties with the same name don't have different attribute values.
Declaration
public override void Validate(IEnumerable<ContentTypeModel> typeModels)
  Parameters
| Type | Name | Description | 
|---|---|---|
| System.Collections.Generic.IEnumerable<EPiServer.DataAbstraction.RuntimeModel.ContentTypeModel> | typeModels | The type models.  |