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(); }
public MsSqlProvider(IDatabaseProviderConfiguration configuration) : base(configuration) { }