---
title: "Interface IProductHandler | Customer's Canvas On-Premises"
canonical: "https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/IProductHandler/"
---

# Interface IProductHandler

> [Aurigma.DesignAtoms.Model.Surface](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/Surface.md)

###### **Namespace**: [Aurigma.DesignAtoms.Model](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model.md)

###### **Assembly**: Aurigma.DesignAtoms.dll

```csharp title="Syntax"
public interface IProductHandler
```

## Methods

### CacheSurfaces

```csharp
void CacheSurfaces(Product product, RenderingConfig renderingConfig)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| [Aurigma.DesignAtoms.Model.Product](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/Product.md) | *product* |  |
| [Aurigma.DesignAtoms.Configuration.RenderingConfig.RenderingConfig](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Configuration.RenderingConfig/RenderingConfig.md) | *renderingConfig* |  |

### GetCachedSurface

```csharp
Surface GetCachedSurface(Product product, RenderingConfig renderingConfig, int surfaceIndex)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| [Aurigma.DesignAtoms.Model.Product](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/Product.md) | *product* |  |
| [Aurigma.DesignAtoms.Configuration.RenderingConfig.RenderingConfig](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Configuration.RenderingConfig/RenderingConfig.md) | *renderingConfig* |  |
| `System.Int32` | *surfaceIndex* |  |

##### Returns

### GetInitialSurfaceCacheId

```csharp
string GetInitialSurfaceCacheId(Surface surface, RenderingConfig.ProofImageRendering proofRendering)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| [Aurigma.DesignAtoms.Model.Surface](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/Surface.md) | *surface* |  |
| [Aurigma.DesignAtoms.Configuration.RenderingConfig.RenderingConfig.ProofImageRendering](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Configuration.RenderingConfig/RenderingConfig.ProofImageRendering.md) | *proofRendering* |  |

##### Returns

`System.String`

### GetProductFonts

```csharp
IEnumerable<string> GetProductFonts(Product product)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| [Aurigma.DesignAtoms.Model.Product](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/Product.md) | *product* |  |

##### Returns

`System.Collections.Generic.IEnumerable<System.String>`

### GetProductFontsExtended

```csharp
IEnumerable<FontInfo> GetProductFontsExtended(Product product)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| [Aurigma.DesignAtoms.Model.Product](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/Product.md) | *product* |  |

##### Returns

`System.Collections.Generic.IEnumerable<Aurigma.GraphicsMill.AdvancedDrawing.FontInfo>`

### GetSurfaceFonts

```csharp
IEnumerable<string> GetSurfaceFonts(Surface surface)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| [Aurigma.DesignAtoms.Model.Surface](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/Surface.md) | *surface* |  |

##### Returns

`System.Collections.Generic.IEnumerable<System.String>`

### GetSurfaceFontsExtended

```csharp
IEnumerable<FontInfo> GetSurfaceFontsExtended(Surface surface)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| [Aurigma.DesignAtoms.Model.Surface](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/Surface.md) | *surface* |  |

##### Returns

`System.Collections.Generic.IEnumerable<Aurigma.GraphicsMill.AdvancedDrawing.FontInfo>`

### GetItemFonts

```csharp
IEnumerable<string> GetItemFonts(BaseTextItem item)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| [Aurigma.DesignAtoms.Model.Items.BaseTextItem](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model.Items/BaseTextItem.md) | *item* |  |

##### Returns

`System.Collections.Generic.IEnumerable<System.String>`

### GetItemFontsExtended

```csharp
IEnumerable<FontInfo> GetItemFontsExtended(BaseTextItem item)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| [Aurigma.DesignAtoms.Model.Items.BaseTextItem](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model.Items/BaseTextItem.md) | *item* |  |

##### Returns

`System.Collections.Generic.IEnumerable<Aurigma.GraphicsMill.AdvancedDrawing.FontInfo>`

### ApplyProductTheme

```csharp
Task ApplyProductTheme(Product product, ProductThemeConfig theme, RenderingConfig renderingConfig)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| [Aurigma.DesignAtoms.Model.Product](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/Product.md) | *product* |  |
| [Aurigma.DesignAtoms.Configuration.ProductThemeConfig](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Configuration/ProductThemeConfig.md) | *theme* |  |
| [Aurigma.DesignAtoms.Configuration.RenderingConfig.RenderingConfig](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Configuration.RenderingConfig/RenderingConfig.md) | *renderingConfig* |  |

##### Returns

`System.Threading.Tasks.Task`

### ApplyProductData

```csharp
Task ApplyProductData(Product product, ItemsData itemsData, VdpOptions options)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| [Aurigma.DesignAtoms.Model.Product](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/Product.md) | *product* |  |
| [Aurigma.DesignAtoms.Model.ItemsData](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ItemsData.md) | *itemsData* |  |
| [Aurigma.DesignAtoms.Model.VdpOptions](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/VdpOptions.md) | *options* |  |

##### Returns

`System.Threading.Tasks.Task`

### ApplyContainerSettings

```csharp
Product ApplyContainerSettings(Product product, Dictionary<string, ContainerProperties> containerSettings)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| [Aurigma.DesignAtoms.Model.Product](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/Product.md) | *product* |  |
| `System.Collections.Generic.Dictionary<System.String,Aurigma.DesignAtoms.Model.ContainerProperties>` | *containerSettings* |  |

##### Returns

[Aurigma.DesignAtoms.Model.Product](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/Product.md)

### ApplyPlaceholdersDataToItems

```csharp
void ApplyPlaceholdersDataToItems(IEnumerable<BaseItem> productAllItems, Dictionary<string, string> itemsDataPlaceholders)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| `System.Collections.Generic.IEnumerable<Aurigma.DesignAtoms.Model.Items.BaseItem>` | *productAllItems* |  |
| `System.Collections.Generic.Dictionary<System.String,System.String>` | *itemsDataPlaceholders* |  |

### ApplyItemsDataToItems

```csharp
Task ApplyItemsDataToItems(IEnumerable<BaseItem> items, IDictionary<string, ItemData> itemsData)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| `System.Collections.Generic.IEnumerable<Aurigma.DesignAtoms.Model.Items.BaseItem>` | *items* |  |
| `System.Collections.Generic.IDictionary<System.String,Aurigma.DesignAtoms.Model.ItemData>` | *itemsData* |  |

##### Returns

`System.Threading.Tasks.Task`

### GetBoundsData

```csharp
IEnumerable<RectangleF> GetBoundsData(Product product)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| [Aurigma.DesignAtoms.Model.Product](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/Product.md) | *product* |  |

##### Returns

`System.Collections.Generic.IEnumerable<System.Drawing.RectangleF>`

### ApplyLayout

```csharp
void ApplyLayout(Product product, bool isForceLegacyTextRenderingRequired = false)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| [Aurigma.DesignAtoms.Model.Product](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/Product.md) | *product* |  |
| `System.Boolean` | *isForceLegacyTextRenderingRequired* |  |
