public void ApplyPreparationResponse(PrepareProcessing.Response response) { VerifyDataChange(AwesomeProcessDataStates.Preparing); PreparationId = response.PreparationId; if (response.Success) { State = AwesomeProcessDataStates.Processing; } else { State = AwesomeProcessDataStates.Failed; Message = response.Message; } }
// STEP 2 public async Task Handle(PrepareProcessing.Response message, IMessageHandlerContext context) { Data.ApplyPreparationResponse(message); switch (Data.State) { case AwesomeProcessDataStates.Processing: // Event notification? await context.Publish(Data.CreatePreparationEvent()).ConfigureAwait(false); await context.SendLocal(Data.CreateExecution()).ConfigureAwait(false); break; } await TryFinalizeSaga().ConfigureAwait(false); }