Class ImportBase

Base class for different types of asset import implementations.

Inheritance
System.Object
ImportBase
Inherited Members
System.Object.ToString()
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
Namespace: Mediachase.Commerce.Assets.Import
Assembly: Mediachase.Commerce.dll
Version: 10.8.0
Syntax
public abstract class ImportBase

Constructors

ImportBase(String, String)

Initializes a new instance of the ImportBase class.

Declaration
public ImportBase(string assetPath, string assetFolderName)
Parameters
Type Name Description
System.String assetPath

The local file path where the files to import are present.

System.String assetFolderName

Name of the asset folder that will be used/created in ECF.

Properties

AssetFolder

Gets the ECF asset folder where to store imported assets.

Declaration
public FolderEntity AssetFolder { get; }
Property Value
Type Description
FolderEntity

AssetGroups

Gets all available asset groups.

Declaration
public string[] AssetGroups { get; }
Property Value
Type Description
System.String[]
Remarks

The asset groups are determined by subfolders on the first level below the AssetPath. I e if you have the AssetPath set as "C:\Images" and below the folder you have "Small", "Medum", and "Large" then your asset groups will be "Small", "Medium" and "Large".

AssetPath

Gets the local file path where assets to import are stored.

Declaration
public string AssetPath { get; }
Property Value
Type Description
System.String

Methods

AssociateAssetsWithProduct(IEnumerable<AssetWrapper>, CatalogEntryDto)

Associates the assets with aproduct.

Declaration
public void AssociateAssetsWithProduct(IEnumerable<AssetWrapper> assets, CatalogEntryDto productDto)
Parameters
Type Name Description
System.Collections.Generic.IEnumerable<AssetWrapper> assets

The imported assets to associate with product.

CatalogEntryDto productDto

The product that should receive the assets.

DoImport(IEnumerable<AssetMapping>)

Does the import.

Declaration
public abstract void DoImport(IEnumerable<AssetMapping> entries)
Parameters
Type Name Description
System.Collections.Generic.IEnumerable<AssetMapping> entries

The entries to import.

FullAssetPath(String[])

Gets the full path to an asset file.

Declaration
public string FullAssetPath(params string[] segments)
Parameters
Type Name Description
System.String[] segments

The segments for the asset file.

Returns
Type Description
System.String

A correctly joined file path pointing to the asset file.

GetOrCreateElementEntity(FolderEntity, String, String)

Gets the asset or creates it if it does not exist.

Declaration
public FolderElementEntity GetOrCreateElementEntity(FolderEntity parentFolderEntity, string assetName, string filePath)
Parameters
Type Name Description
FolderEntity parentFolderEntity

The parent folder entity.

System.String assetName

Name of the asset.

System.String filePath

The file path where the asset to import is located.

Returns
Type Description
FolderElementEntity

A FolderElementEntity to associate with products/variations.

Remarks

This method will use an existing asset in ECF with the same name if it is found. However there is no check that this existing asset contains the same data as the asset we're trying to import. If you need to re-import assets with the same name, but new content you need to clear out the asset folder first.

GetOrCreateFolderEntity(FolderEntity, String)

Declaration
public FolderEntity GetOrCreateFolderEntity(FolderEntity parentEntity, string folderName)
Parameters
Type Name Description
FolderEntity parentEntity
System.String folderName
Returns
Type Description
FolderEntity

GetProductDto(String)

Gets the DTO object for a product/variation from ECF.

Declaration
public CatalogEntryDto GetProductDto(string productCode)
Parameters
Type Name Description
System.String productCode

The product code.

Returns
Type Description
CatalogEntryDto

A catalogEntryDto or null if not found.

ValidAssetGroups(String)

Gets all valid asset groups for the asset.

Declaration
public IEnumerable<string> ValidAssetGroups(string assetName)
Parameters
Type Name Description
System.String assetName

Name of the asset.

Returns
Type Description
System.Collections.Generic.IEnumerable<System.String>

The valid asset groups.

Remarks

This handles the case when the mapping file (csv file) contains an entry that maps an asset to a product, but the asset file does not exist in all the different asset group folders. In that case we will only import the asset that actually exists.