Пример #1
0
        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();
        }
Пример #2
0
 public MsSqlProvider(IDatabaseProviderConfiguration configuration)
     : base(configuration)
 {
 }