# MultiStateTransactionalGrainBaseClass Methods

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.transactions.testkit.base/orleans.transactions.testkit.multistatetransactionalgrainbaseclass/)

## Add(int) {#add-int-d970530b}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.transactions.testkit.base/orleans.transactions.testkit.multistatetransactionalgrainbaseclass/methods/add-int-d970530b/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Transactions.TestKit.Base/Grains/MultiStateTransactionalGrain.cs#L100-L112)

```csharp
public Task<int[]> Add(int numberToAdd)
```

apply add operation to every transaction state

### Parameters

- `numberToAdd` (`int`)

## AddAndThrow(int) {#addandthrow-int-fb0b821f}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.transactions.testkit.base/orleans.transactions.testkit.multistatetransactionalgrainbaseclass/methods/addandthrow-int-fb0b821f/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Transactions.TestKit.Base/Grains/MultiStateTransactionalGrain.cs#L130-L131)

```csharp
public Task AddAndThrow(int numberToAdd)
```

### Parameters

- `numberToAdd` (`int`)

## Deactivate {#deactivate-f0357a77}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.transactions.testkit.base/orleans.transactions.testkit.multistatetransactionalgrainbaseclass/methods/deactivate-f0357a77/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Transactions.TestKit.Base/Grains/MultiStateTransactionalGrain.cs#L142-L143)

```csharp
public Task Deactivate()
```

## Get {#get-19c561de}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.transactions.testkit.base/orleans.transactions.testkit.multistatetransactionalgrainbaseclass/methods/get-19c561de/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Transactions.TestKit.Base/Grains/MultiStateTransactionalGrain.cs#L116-L126)

```csharp
public Task<int[]> Get()
```

apply get operation to every transaction state

## OnActivateAsync(CancellationToken) {#onactivateasync-system-threading-cancellationtoken-7b35999d}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.transactions.testkit.base/orleans.transactions.testkit.multistatetransactionalgrainbaseclass/methods/onactivateasync-system-threading-cancellationtoken-7b35999d/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Transactions.TestKit.Base/Grains/MultiStateTransactionalGrain.cs#L81-L82)

```csharp
public override Task OnActivateAsync(CancellationToken cancellationToken)
```

This method is called at the end of the process of activating a grain. It is called before any messages have been dispatched to the grain. For grains with declared persistent state, this method is called after the State property has been populated.

### Parameters

- `cancellationToken` (`CancellationToken`): A cancellation token which signals when activation is being canceled.

## Set(int) {#set-int-b8780de1}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.transactions.testkit.base/orleans.transactions.testkit.multistatetransactionalgrainbaseclass/methods/set-int-b8780de1/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Transactions.TestKit.Base/Grains/MultiStateTransactionalGrain.cs#L87-L96)

```csharp
public Task Set(int newValue)
```

apply set operation to every transaction state

### Parameters

- `newValue` (`int`)

## SetAndThrow(int) {#setandthrow-int-bc9c772f}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.transactions.testkit.base/orleans.transactions.testkit.multistatetransactionalgrainbaseclass/methods/setandthrow-int-bc9c772f/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Transactions.TestKit.Base/Grains/MultiStateTransactionalGrain.cs#L136-L137)

```csharp
public Task SetAndThrow(int numberToSet)
```

### Parameters

- `numberToSet` (`int`)
