@@ -213,7 +213,7 @@ async Task<HandleResult> InnerHandle(QueuedSagaMessage message, string handleMet
213213 {
214214 await session . Open ( context . Extensions , context . CancellationToken ) . ConfigureAwait ( false ) ;
215215
216- var ( data , isNew , mappedValue ) = await LoadSagaData ( message , session , context . Extensions , context . CancellationToken ) . ConfigureAwait ( false ) ;
216+ var ( data , isNew , mappedValue ) = await LoadSagaData ( message , session , context ) . ConfigureAwait ( false ) ;
217217 saga . Entity = data ;
218218
219219 await sagaMapper . InvokeHandlerMethod ( saga , handleMethodName , message , context ) . ConfigureAwait ( false ) ;
@@ -279,16 +279,14 @@ async Task<HandleResult> HandleTimeout(OutgoingMessage<object, SendOptions> time
279279 }
280280
281281 async Task < ( TSagaData Data , bool IsNew , object MappedValue ) > LoadSagaData (
282- QueuedSagaMessage message , ISynchronizedStorageSession session , ContextBag contextBag , CancellationToken cancellationToken )
282+ QueuedSagaMessage message , ISynchronizedStorageSession session , TestableMessageHandlerContext context )
283283 {
284284 var messageMetadata = sagaMapper . GetMessageMetadata ( message . Type ) ;
285285 TSagaData sagaData ;
286286
287- if ( message . Headers != null &&
288- message . Headers . TryGetValue ( Headers . SagaId , out var sagaIdString ) &&
289- Guid . TryParse ( sagaIdString , out Guid sagaId ) )
287+ if ( message . Headers . TryGetValue ( Headers . SagaId , out var sagaIdString ) && Guid . TryParse ( sagaIdString , out Guid sagaId ) )
290288 {
291- sagaData = await persister . Get < TSagaData > ( sagaId , session , contextBag , cancellationToken ) . ConfigureAwait ( false ) ;
289+ sagaData = await persister . Get < TSagaData > ( sagaId , session , context . Extensions , context . CancellationToken ) . ConfigureAwait ( false ) ;
292290 if ( sagaData != null )
293291 {
294292 return ( sagaData , false , null ) ;
@@ -297,7 +295,7 @@ async Task<HandleResult> HandleTimeout(OutgoingMessage<object, SendOptions> time
297295
298296 var messageMappedValue = sagaMapper . GetMessageMappedValue ( message ) ;
299297
300- sagaData = await persister . Get < TSagaData > ( sagaMapper . CorrelationPropertyName , messageMappedValue , session , contextBag , cancellationToken ) . ConfigureAwait ( false ) ;
298+ sagaData = await persister . Get < TSagaData > ( sagaMapper . CorrelationPropertyName , messageMappedValue , session , context . Extensions , context . CancellationToken ) . ConfigureAwait ( false ) ;
301299
302300 if ( sagaData != null )
303301 {
@@ -306,7 +304,10 @@ async Task<HandleResult> HandleTimeout(OutgoingMessage<object, SendOptions> time
306304
307305 if ( messageMetadata . IsAllowedToStartSaga )
308306 {
309- sagaData = new TSagaData { Id = Guid . NewGuid ( ) } ;
307+ var originatorAddress = message . Headers . TryGetValue ( Headers . ReplyToAddress , out var replyAddress )
308+ ? replyAddress
309+ : context . ReplyToAddress ; // This property has a default value set even when the header isn't set to require less setup for testing
310+ sagaData = new TSagaData { Id = Guid . NewGuid ( ) , Originator = originatorAddress } ;
310311 sagaMapper . SetCorrelationPropertyValue ( sagaData , messageMappedValue ) ;
311312 return ( sagaData , true , messageMappedValue ) ;
312313 }
0 commit comments