# ITransactionCoordinatorGrain Methods

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

## AddAndThrow(ITransactionTestGrain, int) {#addandthrow-orleans-transactions-testkit-itransactiontestgrain-int-e03dfe11}

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

```csharp
[Orleans.Transaction(2)]
public abstract Task AddAndThrow(ITransactionTestGrain grain, int numberToAdd)
```

### Parameters

- `grain` (`ITransactionTestGrain`)
- `numberToAdd` (`int`)

## MultiGrainAdd(ITransactionCommitterTestGrain, ITransactionCommitOperation&lt;IRemoteCommitService&gt;, List&lt;ITransactionTestGrain&gt;, int) {#multigrainadd-orleans-transactions-testkit-itransactioncommittertestgrain-orlean-3531b526}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.transactions.testkit.base/orleans.transactions.testkit.itransactioncoordinatorgrain/methods/multigrainadd-orleans-transactions-testkit-itransactioncommittertestgrain-orlean-3531b526/)

```csharp
[Orleans.Transaction(2)]
public abstract Task MultiGrainAdd(ITransactionCommitterTestGrain committer, ITransactionCommitOperation<IRemoteCommitService> operation, List<ITransactionTestGrain> grains, int numberToAdd)
```

### Parameters

- `committer` (`ITransactionCommitterTestGrain`)
- `operation` (`ITransactionCommitOperation<IRemoteCommitService>`)
- `grains` (`List<ITransactionTestGrain>`)
- `numberToAdd` (`int`)

## MultiGrainAdd(List&lt;ITransactionTestGrain&gt;, int) {#multigrainadd-system-collections-generic-list-orleans-transactions-testkit-itran-f0661caf}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.transactions.testkit.base/orleans.transactions.testkit.itransactioncoordinatorgrain/methods/multigrainadd-system-collections-generic-list-orleans-transactions-testkit-itran-f0661caf/)

```csharp
[Orleans.Transaction(2)]
public abstract Task MultiGrainAdd(List<ITransactionTestGrain> grains, int numberToAdd)
```

### Parameters

- `grains` (`List<ITransactionTestGrain>`)
- `numberToAdd` (`int`)

## MultiGrainAddAndThrow(List&lt;ITransactionTestGrain&gt;, List&lt;ITransactionTestGrain&gt;, int) {#multigrainaddandthrow-system-collections-generic-list-orleans-transactions-testk-e757eeb9}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.transactions.testkit.base/orleans.transactions.testkit.itransactioncoordinatorgrain/methods/multigrainaddandthrow-system-collections-generic-list-orleans-transactions-testk-e757eeb9/)

```csharp
[Orleans.Transaction(2)]
public abstract Task MultiGrainAddAndThrow(List<ITransactionTestGrain> grain, List<ITransactionTestGrain> grains, int numberToAdd)
```

### Parameters

- `grain` (`List<ITransactionTestGrain>`)
- `grains` (`List<ITransactionTestGrain>`)
- `numberToAdd` (`int`)

## MultiGrainDouble(List&lt;ITransactionTestGrain&gt;) {#multigraindouble-system-collections-generic-list-orleans-transactions-testkit-it-5aab91f1}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.transactions.testkit.base/orleans.transactions.testkit.itransactioncoordinatorgrain/methods/multigraindouble-system-collections-generic-list-orleans-transactions-testkit-it-5aab91f1/)

```csharp
[Orleans.Transaction(2)]
public abstract Task MultiGrainDouble(List<ITransactionTestGrain> grains)
```

### Parameters

- `grains` (`List<ITransactionTestGrain>`)

## MultiGrainDoubleByRWRW(List&lt;ITransactionTestGrain&gt;, int) {#multigraindoublebyrwrw-system-collections-generic-list-orleans-transactions-test-a92e8720}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.transactions.testkit.base/orleans.transactions.testkit.itransactioncoordinatorgrain/methods/multigraindoublebyrwrw-system-collections-generic-list-orleans-transactions-test-a92e8720/)

```csharp
[Orleans.Transaction(2)]
public abstract Task MultiGrainDoubleByRWRW(List<ITransactionTestGrain> grains, int numberToAdd)
```

### Parameters

- `grains` (`List<ITransactionTestGrain>`)
- `numberToAdd` (`int`)

## MultiGrainDoubleByWRWR(List&lt;ITransactionTestGrain&gt;, int) {#multigraindoublebywrwr-system-collections-generic-list-orleans-transactions-test-2a9819f8}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.transactions.testkit.base/orleans.transactions.testkit.itransactioncoordinatorgrain/methods/multigraindoublebywrwr-system-collections-generic-list-orleans-transactions-test-2a9819f8/)

```csharp
[Orleans.Transaction(2)]
public abstract Task MultiGrainDoubleByWRWR(List<ITransactionTestGrain> grains, int numberToAdd)
```

### Parameters

- `grains` (`List<ITransactionTestGrain>`)
- `numberToAdd` (`int`)

## MultiGrainSet(List&lt;ITransactionTestGrain&gt;, int) {#multigrainset-system-collections-generic-list-orleans-transactions-testkit-itran-f7bd1d62}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.transactions.testkit.base/orleans.transactions.testkit.itransactioncoordinatorgrain/methods/multigrainset-system-collections-generic-list-orleans-transactions-testkit-itran-f7bd1d62/)

```csharp
[Orleans.Transaction(2)]
public abstract Task MultiGrainSet(List<ITransactionTestGrain> grains, int numberToAdd)
```

### Parameters

- `grains` (`List<ITransactionTestGrain>`)
- `numberToAdd` (`int`)

## MultiGrainSetBit(List&lt;ITransactionalBitArrayGrain&gt;, int) {#multigrainsetbit-system-collections-generic-list-orleans-transactions-testkit-co-dee05e3c}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.transactions.testkit.base/orleans.transactions.testkit.itransactioncoordinatorgrain/methods/multigrainsetbit-system-collections-generic-list-orleans-transactions-testkit-co-dee05e3c/)

```csharp
[Orleans.Transaction(2)]
public abstract Task MultiGrainSetBit(List<ITransactionalBitArrayGrain> grains, int bitIndex)
```

### Parameters

- `grains` (`List<ITransactionalBitArrayGrain>`)
- `bitIndex` (`int`)

## OrphanCallTransaction {#orphancalltransaction-938484ce}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.transactions.testkit.base/orleans.transactions.testkit.itransactioncoordinatorgrain/methods/orphancalltransaction-938484ce/)

```csharp
[Orleans.Transaction(2)]
public abstract Task OrphanCallTransaction()
```

## UpdateViolated(ITransactionTestGrain, int) {#updateviolated-orleans-transactions-testkit-itransactiontestgrain-int-9c9f15a7}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.transactions.testkit.base/orleans.transactions.testkit.itransactioncoordinatorgrain/methods/updateviolated-orleans-transactions-testkit-itransactiontestgrain-int-9c9f15a7/)

```csharp
[Orleans.Transaction(2)]
[Orleans.Concurrency.ReadOnly]
public abstract Task UpdateViolated(ITransactionTestGrain grains, int numberToAdd)
```

### Parameters

- `grains` (`ITransactionTestGrain`)
- `numberToAdd` (`int`)
