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

# Class ModelComponentUpgradeConverter.UpgradeAlgorithm

> **Inheritance:** `System.Object` -> ModelComponentUpgradeConverter.UpgradeAlgorithm

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

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

```csharp title="Syntax"
public class UpgradeAlgorithm
```

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

### UpgradeAlgorithm

```csharp
public UpgradeAlgorithm(string affectedVersions, string versionAfterUpgrade, Func<JObject, JsonSerializer, JObject> upgradeFunction)
```

### UpgradeAlgorithm

```csharp
public UpgradeAlgorithm(string affectedVersions, string versionAfterUpgrade, Func<JObject, JsonSerializer, ILifetimeScope, JObject> upgradeFunction)
```

### UpgradeAlgorithm

```csharp
public UpgradeAlgorithm(ModelComponentUpgradeConverter.VersionPattern versionPattern, string versionAfterUpgrade, Func<JObject, JsonSerializer, ILifetimeScope, JObject> upgradeFunction)
```

### UpgradeAlgorithm

```csharp
public UpgradeAlgorithm(ModelComponentUpgradeConverter.VersionPattern versionPattern, string versionAfterUpgrade, Func<JObject, JsonSerializer, JObject> upgradeFunction)
```

## Methods

### Upgrade

```csharp
public virtual JObject Upgrade(JObject serializedComponent, JsonSerializer serializer, ILifetimeScope scope)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| `Newtonsoft.Json.Linq.JObject` | *serializedComponent* |  |
| `Newtonsoft.Json.JsonSerializer` | *serializer* |  |
| `Autofac.ILifetimeScope` | *scope* |  |

##### Returns

`Newtonsoft.Json.Linq.JObject`

### CanUpgrade

```csharp
public virtual bool CanUpgrade(JObject serializedComponent)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| `Newtonsoft.Json.Linq.JObject` | *serializedComponent* |  |

##### Returns

`System.Boolean`

## Fields

### VersionPattern

```csharp
public readonly ModelComponentUpgradeConverter.VersionPattern VersionPattern
```

### VersionAfterUpgrade

```csharp
public readonly string VersionAfterUpgrade
```
