Exemple #1
0
        public void GetAccessIdInfo(string AccessId)
        {
            try
            {
                SetStatus("Initializing Selected Schema");

                CswNbtResources CswNbtResources = null;
                _InitSessionResources(AccessId, ref CswNbtResources);

                SchemaInfoEventArgs e = new SchemaInfoEventArgs();

                // Initialize CswSchemaScriptsProd -- we must do this here so that database resources are also initialized
                _CswSchemaScriptsProd = new CswSchemaScriptsProd(_CswNbtResources);

                _CswSchemaUpdater      = new CswSchemaUpdater(AccessId, new CswSchemaUpdater.ResourcesInitHandler(_InitSessionResources), _CswSchemaScriptsProd);
                e.MinimumSchemaVersion = _CswSchemaUpdater.MinimumVersion;
                e.LatestSchemaVersion  = _CswSchemaUpdater.LatestVersion;

                CswSchemaVersion CurrentVersion = new CswSchemaVersion(CswNbtResources.ConfigVbls.getConfigVariableValue("schemaversion").ToString());
                e.CurrentSchemaVersion = CurrentVersion;

                CswTableSelect UpdateHistorySelect = CswNbtResources.makeCswTableSelect("SchemaUpdater_updatehistory_select", "update_history");
                DataTable      UpdateHistoryTable  = UpdateHistorySelect.getTable(string.Empty, new Collection <OrderByClause> {
                    new OrderByClause("updatehistoryid", CswEnumOrderByType.Descending)
                });
                e.UpdateHistoryTable = UpdateHistoryTable;

                if (OnGetSchemaInfo != null)
                {
                    OnGetSchemaInfo(e);
                }

                _CloseSessionResources(CswNbtResources);

                SetStatus("Initializing Selected Schema: Done");
            }
            catch (Exception ex)
            {
                SetStatus("ERROR: " + ex.Message);
            }
        }
Exemple #2
0
        }//_updateHistoryTable()

        public void DoUpdate(string AccessId)
        {
            try
            {
                SetStatus("Updating Selected Schema");

                CswNbtResources CswNbtResources = null;
                _InitSessionResources(AccessId, ref CswNbtResources);
                SchemaInfoEventArgs SchemaInfoEventArgs = new SchemaInfoEventArgs();


                _CswSchemaUpdater = new CswSchemaUpdater(AccessId, new CswSchemaUpdater.ResourcesInitHandler(_InitSessionResources), _CswSchemaScriptsProd);     //wait to create updater until resource initiation is thoroughly done

                // RunBeforeScripts -- Run Non Versioned Scripts
                bool UpdateSucceeded = _runNonVersionScripts(_CswSchemaScriptsProd.RunBeforeScripts, CswNbtResources, SchemaInfoEventArgs);

                if (UpdateSucceeded)
                {
                    CswSchemaVersion CurrentVersion = _CswSchemaUpdater.CurrentVersion(CswNbtResources);

                    for (int i = 0; (UpdateSucceeded && !Cancel &&
                                     ((CurrentVersion != _CswSchemaUpdater.LatestVersion) || (i < _CswSchemaUpdater.UpdateDrivers.Count))); i++)
                    {
                        CswSchemaVersion UpdateToVersion = _CswSchemaUpdater.SchemaVersions[i];
                        SetStatus("Updating to " + UpdateToVersion);

                        UpdateSucceeded = _CswSchemaUpdater.runNextVersionedScript();

                        CswNbtResources.AccessId = AccessId; //cases 23787,9751: you have to re-init after the release() that is done in the Updater
                        CswNbtResources.ClearCache();

                        SchemaInfoEventArgs.MinimumSchemaVersion = _CswSchemaUpdater.MinimumVersion;
                        SchemaInfoEventArgs.LatestSchemaVersion  = _CswSchemaUpdater.LatestVersion;

                        CurrentVersion = _CswSchemaUpdater.CurrentVersion(CswNbtResources);
                        SchemaInfoEventArgs.CurrentSchemaVersion = CurrentVersion;

                        _updateHistoryTable(CswNbtResources, SchemaInfoEventArgs);

                        if (UpdateSucceeded)
                        {
                            SetStatus("Update successful: " + _CswSchemaUpdater.getDriver(UpdateToVersion).SchemaVersion + ": " + _CswSchemaUpdater.getDriver(UpdateToVersion).Description);
                        }
                    } //iterate
                }     //if pre-process scripts succeded

                if (UpdateSucceeded)
                {
                    UpdateSucceeded = _runNonVersionScripts(_CswSchemaScriptsProd.RunAfterScripts, CswNbtResources, SchemaInfoEventArgs);
                }

                if (Cancel)
                {
                    SetStatus("Update process stopped");
                }
                else if (!UpdateSucceeded)
                {
                    if (OnUpdateFailed != null)
                    {
                        OnUpdateFailed();
                    }
                    SetStatus("Update failed");
                }
                else
                {
                    SetStatus("Update process completed");
                }

                _CloseSessionResources(CswNbtResources);
            }
            catch (Exception ex)
            {
                SetStatus("ERROR: " + ex.Message);
            }
        }//iterate versions