private async Task <ISaga> CreateNewSaga(ISagaModel model, SagaID id)
        {
            if (id == SagaID.Empty())
            {
                id = SagaID.New();
            }

            ISagaData data = (ISagaData)Activator.CreateInstance(model.SagaStateType);

            data.ID = id;

            ISaga saga = new Saga
            {
                Data          = data,
                ExecutionInfo = new SagaExecutionInfo
                {
                    ModelName = model.Name,
                    Created   = dateTimeProvider.Now,
                    Modified  = dateTimeProvider.Now
                },
                ExecutionState = new SagaExecutionState
                {
                    CurrentState = new SagaStartState().GetStateName(),
                    CurrentStep  = null
                }
            };

            return(saga);
        }