diff --git a/samples/saga/simple/Core_9/Sample/MySaga.cs b/samples/saga/simple/Core_9/Sample/MySaga.cs new file mode 100644 index 00000000000..54062d6af13 --- /dev/null +++ b/samples/saga/simple/Core_9/Sample/MySaga.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using NServiceBus; + +public class MySaga : Saga, IAmStartedByMessages +{ + protected override void ConfigureHowToFindSaga(SagaPropertyMapper mapper) + { + mapper.MapSaga(saga => saga.PolicyHolderIdentifier) + .ToMessage(m => m.CustomerNumber); + } + public Task Handle(IRenewalSagaCommand message, IMessageHandlerContext context) => throw new NotImplementedException(); +} + +public class RenewalSagaData : CustomerBasedBaseSagaData{} + +public abstract class CustomerBasedBaseSagaData : BaseSagaData +{ + public string PolicyHolderIdentifier { get; set; } +} + +public abstract class BaseSagaData : ContainSagaData +{ + protected BaseSagaData() + { + SagaStartDate = DateTime.UtcNow; + SagaLastModifiedDate = DateTime.UtcNow; + PoliciesToHandle = new HashSet(); + } + public DateTime SagaStartDate { get; set; } + public DateTime SagaLastModifiedDate { get; set; } + public HashSet PoliciesToHandle { get; set; } + public bool TimeoutRequested { get; set; } + public DateTime TimeoutTriggerTime { get; set; } +} +public interface IRenewalSagaCommand : ICustomerBasedBaseSagaCommand{} + +public interface ICustomerBasedBaseSagaCommand : IBaseSagaCommand +{ + string CustomerNumber { get; set; } +} + +public interface IBaseSagaCommand : ICommand +{ + string PolicyId { get; set; } +} \ No newline at end of file