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

# Class ProductHandler

> **Inheritance:** `System.Object` -> ProductHandler

###### **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 class ProductHandler : IProductHandler
```

## Implements

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

## 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`

## Constructors

### ProductHandler

```csharp
public ProductHandler(IMergeUtil mergeUtil, IItemHandlerFactory itemHandlerFactory, IItemsDataValidator itemsDataValidator, IMd5Util md5Util, ISurfaceHandler surfaceHandler, IFontService fontService, ItemDataHandler.Factory itemDataHandlerFactory, IStateResourcesLoader stateResourcesLoader, ITemplateStorage templateStorage, IBoundingPathCalculationService boundingPathCalculationService)
```

## Methods

### GetBoundsData

```csharp
public 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>`

### CacheSurfaces

```csharp
public 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
public 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

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

### GetInitialSurfaceCacheId

```csharp
public 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
public 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
public 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
public 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
public 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
public 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
public 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
public 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
public 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
public 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)

### ApplyLayout

```csharp
public 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* |  |

### ApplyPlaceholdersDataToItems

```csharp
public 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* |  |

### ReplaceInStringPlaceholdersValueInText

```csharp
public static string ReplaceInStringPlaceholdersValueInText(BaseTextItem textItem)
```

##### 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) | *textItem* |  |

##### Returns

`System.String`

### ShowStubContent

```csharp
public static void ShowStubContent(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* |  |

### RemoveEmptyInterpolationPlaceholders

```csharp
public static void RemoveEmptyInterpolationPlaceholders(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* |  |

### RemoveEmptyInterpolationPlaceholders

```csharp
public static Product RemoveEmptyInterpolationPlaceholders(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

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

### RemoveInStringPlaceholderHints

```csharp
public static void RemoveInStringPlaceholderHints(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* |  |

### FillEmptyInStringPlaceholdersWithHints

```csharp
public static void FillEmptyInStringPlaceholdersWithHints(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* |  |

### RemoveInStringPlaceholderHints

```csharp
public static void RemoveInStringPlaceholderHints(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* |  |

### FillEmptyInStringPlaceholdersWithHints

```csharp
public static void FillEmptyInStringPlaceholdersWithHints(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* |  |

### ApplyItemsDataToItems

```csharp
public 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`
