@@ -62,7 +62,13 @@ protected override async Task DoExecuteAsync(CancellationToken cancellationToken
62
62
if ( this . Task . Definition . Foreach == null )
63
63
{
64
64
var context = await this . Task . CorrelateAsync ( cancellationToken ) . ConfigureAwait ( false ) ;
65
- await this . SetResultAsync ( context , this . Task . Definition . Then , cancellationToken ) . ConfigureAwait ( false ) ;
65
+ var events = this . Task . Definition . Listen . Read switch
66
+ {
67
+ EventReadMode . Data or EventReadMode . Raw => context . Events . Select ( e => e . Value . Data ) ,
68
+ EventReadMode . Envelope => context . Events . Select ( e => e . Value . Data ) ,
69
+ _ => throw new NotSupportedException ( $ "The specified event read mode '{ this . Task . Definition . Listen . Read } ' is not supported")
70
+ } ;
71
+ await this . SetResultAsync ( events , this . Task . Definition . Then , cancellationToken ) . ConfigureAwait ( false ) ;
66
72
}
67
73
else
68
74
{
@@ -107,7 +113,12 @@ protected virtual async Task OnStreamingEventAsync(IStreamedCloudEvent e)
107
113
]
108
114
} ;
109
115
var arguments = this . GetExpressionEvaluationArguments ( ) ;
110
- var eventData = e . Event as object ;
116
+ var eventData = this . Task . Definition . Listen . Read switch
117
+ {
118
+ EventReadMode . Data or EventReadMode . Raw => e . Event . Data ,
119
+ EventReadMode . Envelope => e . Event ,
120
+ _ => throw new NotSupportedException ( $ "The specified event read mode '{ this . Task . Definition . Listen . Read } ' is not supported")
121
+ } ;
111
122
if ( this . Task . Definition . Foreach . Output ? . As is string fromExpression ) eventData = await this . Task . Workflow . Expressions . EvaluateAsync < object > ( fromExpression , eventData ?? new ( ) , arguments , this . CancellationTokenSource ! . Token ) . ConfigureAwait ( false ) ;
112
123
else if ( this . Task . Definition . Foreach . Output ? . As != null ) eventData = await this . Task . Workflow . Expressions . EvaluateAsync < object > ( this . Task . Definition . Foreach . Output . As ! , eventData ?? new ( ) , arguments , this . CancellationTokenSource ! . Token ) . ConfigureAwait ( false ) ;
113
124
if ( this . Task . Definition . Foreach . Export ? . As is string toExpression )
0 commit comments