Header menu logo FCQRS

SagaBuilderCSharp Type

C#-friendly saga builder

Static members

Static member Description

SagaBuilderCSharp.Factory(actorApi, sagaEntityFac, entityId)

Full Usage: SagaBuilderCSharp.Factory(actorApi, sagaEntityFac, entityId)

Parameters:
Returns: IEntityRef<obj>

Get the factory for a saga

actorApi : IActor
sagaEntityFac : EntityFac<obj>
entityId : string
Returns: IEntityRef<obj>

SagaBuilderCSharp.Init(actorApi, sagaData, handleEvent, applySideEffects, originatorFactory, sagaName)

Full Usage: SagaBuilderCSharp.Init(actorApi, sagaData, handleEvent, applySideEffects, originatorFactory, sagaName)

Parameters:
Returns: EntityFac<obj>

Initialize a saga without apply (no data updates based on state)

actorApi : IActor
sagaData : 'TSagaData
handleEvent : Func<obj, SagaState<'TSagaData, 'TSagaState option>, EventAction<'TSagaState>>
applySideEffects : Func<SagaState<'TSagaData, 'TSagaState>, bool, SagaSideEffectResult<'TSagaState>>
originatorFactory : Func<string, IEntityRef<obj>>
sagaName : string
Returns: EntityFac<obj>

SagaBuilderCSharp.Init(actorApi, sagaData, handleEvent, applySideEffects, apply, originatorFactory, sagaName)

Full Usage: SagaBuilderCSharp.Init(actorApi, sagaData, handleEvent, applySideEffects, apply, originatorFactory, sagaName)

Parameters:
Returns: EntityFac<obj>

Initialize a saga with simplified apply - just takes data and unwrapped state, returns new data

actorApi : IActor
sagaData : 'TSagaData
handleEvent : Func<obj, SagaState<'TSagaData, 'TSagaState option>, EventAction<'TSagaState>>
applySideEffects : Func<SagaState<'TSagaData, 'TSagaState>, bool, SagaSideEffectResult<'TSagaState>>
apply : Func<'TSagaData, 'TSagaState, 'TSagaData>
originatorFactory : Func<string, IEntityRef<obj>>
sagaName : string
Returns: EntityFac<obj>

SagaBuilderCSharp.Init(actorApi, sagaData, handleEvent, applySideEffects, apply, originatorFactory, sagaName)

Full Usage: SagaBuilderCSharp.Init(actorApi, sagaData, handleEvent, applySideEffects, apply, originatorFactory, sagaName)

Parameters:
Returns: EntityFac<obj>

Initialize a saga with C# delegates 'TEvent - The triggering event type (from the originator aggregate) 'TSagaData - Cross-cutting saga data 'TSagaState - User-defined saga states

actorApi : IActor
sagaData : 'TSagaData
handleEvent : Func<obj, SagaState<'TSagaData, 'TSagaState option>, EventAction<'TSagaState>>
applySideEffects : Func<SagaState<'TSagaData, 'TSagaState>, bool, SagaSideEffectResult<'TSagaState>>
apply : Func<SagaState<'TSagaData, SagaStateWrapper<'TSagaState, 'TEvent>>, SagaState<'TSagaData, SagaStateWrapper<'TSagaState, 'TEvent>>>
originatorFactory : Func<string, IEntityRef<obj>>
sagaName : string
Returns: EntityFac<obj>

SagaBuilderCSharp.InitSimple(actorApi, sagaData, handleEvent, applySideEffects, originatorFactory, sagaName)

Full Usage: SagaBuilderCSharp.InitSimple(actorApi, sagaData, handleEvent, applySideEffects, originatorFactory, sagaName)

Parameters:
Returns: EntityFac<obj>

Initialize a saga with simplified signatures and no apply

actorApi : IActor
sagaData : 'TSagaData
handleEvent : Func<Event<'TEvent>, 'TSagaData, 'TSagaState, EventAction<'TSagaState>>
applySideEffects : Func<'TSagaData, 'TSagaState, bool, SagaSideEffectResult<'TSagaState>>
originatorFactory : Func<string, IEntityRef<obj>>
sagaName : string
Returns: EntityFac<obj>

SagaBuilderCSharp.InitSimple(actorApi, sagaData, handleEvent, applySideEffects, apply, originatorFactory, sagaName)

Full Usage: SagaBuilderCSharp.InitSimple(actorApi, sagaData, handleEvent, applySideEffects, apply, originatorFactory, sagaName)

Parameters:
Returns: EntityFac<obj>

Initialize a saga with simplified signatures - no FSharpOption, typed events handleEvent: (event, data, currentState) -> EventAction applySideEffects: (data, state, recovering) -> SagaSideEffectResult

actorApi : IActor
sagaData : 'TSagaData
handleEvent : Func<Event<'TEvent>, 'TSagaData, 'TSagaState, EventAction<'TSagaState>>
applySideEffects : Func<'TSagaData, 'TSagaState, bool, SagaSideEffectResult<'TSagaState>>
apply : Func<'TSagaData, 'TSagaState, 'TSagaData>
originatorFactory : Func<string, IEntityRef<obj>>
sagaName : string
Returns: EntityFac<obj>

Type something to start searching.