protected BaseProvider(IDatabaseProviderConfiguration configuration) { Configuration = configuration; Workflow = new StateWorkflow<DatabaseStates>(new StateWorkflowConfig<DatabaseStates> { AutoExecuteOnStateChanged = true, EndState = DatabaseStates.Initialized, ThrowExceptions = false }); // NonInitialized -> DB Create Workflow.Add<DatabaseCheckAction>(DatabaseStates.NotInitialized, GetDatabaseCheckAction); Workflow.Add<DatabaseCreateAction>(DatabaseStates.DatabaseDoesNotExist, GetDatabaseCreateAction); Workflow.Add<DatabaseObjectsCheckAction>(DatabaseStates.DatabaseCreated, GetDatabaseObjectsCheckAction); Workflow.Add<DatabaseSchemaCreateAction>(DatabaseStates.SchemaMissing, GetDatabaseSchemaCreateAction); Workflow.Add<DatabaseObjectsCheckAction>(DatabaseStates.SchemaCreated, GetDatabaseObjectsCheckAction); Workflow.Add<DatabaseTableCreateAction>(DatabaseStates.TablesMissing, GetDatabaseTableCreateAction); Workflow.Add<DatabaseObjectsCheckAction>(DatabaseStates.TablesCreated, GetDatabaseObjectsCheckAction); Workflow.Add<DatabaseReferenceDataAction>(DatabaseStates.ReferencesMissing, GetDatabaseReferenceDataAction); Workflow.Add<DatabaseInitializedAction>(DatabaseStates.ReferenceDataPopulated, GetDatabaseInitializedAction); Workflow.OnInvalidState = (state, dataDictionary, data) => CurrentContext.Default.Log.Error("Unknown DB State:" + state); Workflow.OnStateChanged = x => CurrentContext.Default.Log.DebugFormat("State changed from {0} to {1}", x.Previous, x.Current); Workflow.OnWorkflowEnded = (x, y) => OnInitialized(); }
protected BaseProvider(IDatabaseProviderConfiguration configuration) { Configuration = configuration; Workflow = new StateWorkflow <DatabaseStates>(new StateWorkflowConfig <DatabaseStates> { AutoExecuteOnStateChanged = true, EndState = DatabaseStates.Initialized, ThrowExceptions = false }); // NonInitialized -> DB Create Workflow.Add <DatabaseCheckAction>(DatabaseStates.NotInitialized, GetDatabaseCheckAction); Workflow.Add <DatabaseCreateAction>(DatabaseStates.DatabaseDoesNotExist, GetDatabaseCreateAction); Workflow.Add <DatabaseObjectsCheckAction>(DatabaseStates.DatabaseCreated, GetDatabaseObjectsCheckAction); Workflow.Add <DatabaseSchemaCreateAction>(DatabaseStates.SchemaMissing, GetDatabaseSchemaCreateAction); Workflow.Add <DatabaseObjectsCheckAction>(DatabaseStates.SchemaCreated, GetDatabaseObjectsCheckAction); Workflow.Add <DatabaseTableCreateAction>(DatabaseStates.TablesMissing, GetDatabaseTableCreateAction); Workflow.Add <DatabaseObjectsCheckAction>(DatabaseStates.TablesCreated, GetDatabaseObjectsCheckAction); Workflow.Add <DatabaseReferenceDataAction>(DatabaseStates.ReferencesMissing, GetDatabaseReferenceDataAction); Workflow.Add <DatabaseInitializedAction>(DatabaseStates.ReferenceDataPopulated, GetDatabaseInitializedAction); Workflow.OnInvalidState = (state, dataDictionary, data) => CurrentContext.Default.Log.Error("Unknown DB State:" + state); Workflow.OnStateChanged = x => CurrentContext.Default.Log.DebugFormat("State changed from {0} to {1}", x.Previous, x.Current); Workflow.OnWorkflowEnded = (x, y) => OnInitialized(); }