@@ -16,9 +16,9 @@ public class ShovelService<TSubscription, TProducer, TProduceOptions> : IHostedS
16
16
readonly TSubscription _subscription ;
17
17
readonly TProducer _producer ;
18
18
19
- public record ShovelMessage ( string TargetStream , object Message , TProduceOptions ProduceOptions ) ;
19
+ public record ShovelMessage ( string TargetStream , object ? Message , TProduceOptions ProduceOptions ) ;
20
20
21
- public delegate ValueTask < ShovelMessage > RouteAndTransform ( object message ) ;
21
+ public delegate ValueTask < ShovelMessage ? > RouteAndTransform ( object message ) ;
22
22
23
23
public delegate TSubscription CreateSubscription (
24
24
string subscriptionId ,
@@ -96,8 +96,15 @@ ShovelService<TSubscription, TProducer, TProduceOptions>.RouteAndTransform trans
96
96
}
97
97
98
98
public async Task HandleEvent ( object evt , long ? position , CancellationToken cancellationToken ) {
99
- var ( targetStream , message , options ) = await _transform ( evt ) . NoContext ( ) ;
100
- await _eventProducer . Produce ( targetStream , new [ ] { message } , options , cancellationToken ) . NoContext ( ) ;
99
+ var shovelMessage = await _transform ( evt ) . NoContext ( ) ;
100
+ if ( shovelMessage ? . Message == null ) return ;
101
+
102
+ await _eventProducer . Produce (
103
+ shovelMessage . TargetStream ,
104
+ new [ ] { shovelMessage . Message } ,
105
+ shovelMessage . ProduceOptions ,
106
+ cancellationToken
107
+ ) . NoContext ( ) ;
101
108
}
102
109
}
103
110
}
0 commit comments