# JournaledGrain&lt;TGrainState, TEventBase&gt;.RaiseConditionalEvents(IEnumerable&lt;TEvent&gt;)

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.journaledgrain-2/) | [Methods](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.journaledgrain-2/methods/)

[Source](https://github.com/dotnet/orleans/blob/b7a9e3e1c9c54b3cec3a467c5734bf7744541bcf/src/Orleans.EventSourcing/JournaledGrain.cs#L88-L89)

```csharp
protected virtual Task<bool> JournaledGrain<TGrainState, RaiseConditionalEvents<TEvent>(IEnumerable<TEvent> events)
```

Raise multiple events, as an atomic sequence, conditionally. Succeeds only if there are no conflicts, that is, no other events were raised in the meantime.

### Parameters

- `events` (`IEnumerable<TEvent>`): Events to raise

### Returns

`true` if successful, `false` if there was a conflict.
