}//_runNonVersionScripts() private bool _updateAccessId(string AccessId, CswNbtResources CswNbtResources, CswSchemaUpdater CswSchemaUpdater, CswConsoleOutput CswConsoleOutput, bool SuppressRealTimeProgressTics, bool ContinueOnError) { CswSchemaUpdateThread CswSchemaUpdateThread = new CswSchemaUpdateThread(CswSchemaUpdater); CswConsoleOutput.write("Running Non-Versioned Pre-Scripts" + _Separator_NuLine + _Separator_NuLine); CswSchemaScriptsProd CswSchemaScriptsProd = new CswSchemaScriptsProd(CswNbtResources); bool UpdateSucceeded = _runNonVersionScripts(CswSchemaUpdater, CswSchemaScriptsProd.RunBeforeScripts, CswConsoleOutput); if (UpdateSucceeded) { CswSchemaVersion CurrentVersion = CswSchemaUpdater.CurrentVersion(CswNbtResources); // refresh current version in case it was altered CswNbtResources.ConfigVbls.refresh(); CurrentVersion = CswSchemaUpdater.CurrentVersion(CswNbtResources); CswConsoleOutput.write("Updating from " + CurrentVersion.ToString() + " to " + CswSchemaUpdater.LatestVersion.ToString() + _Separator_NuLine + _Separator_NuLine); for (int i = 0; ((UpdateSucceeded || ContinueOnError) && ((CurrentVersion != CswSchemaUpdater.LatestVersion) || (i < CswSchemaUpdater.UpdateDrivers.Count))); i++) { if (CurrentVersion < CswSchemaUpdater.MinimumVersion) { UpdateSucceeded = false; CswConsoleOutput.write("AccessId " + AccessId + ": "); CswConsoleOutput.write(" failed: Schema version (" + CurrentVersion.ToString() + ") is below minimum version (" + CswSchemaUpdater.MinimumVersion.ToString() + ")" + _Separator_NuLine); } else { CswSchemaVersion UpdateToVersion = CswSchemaUpdater.SchemaVersions[i]; string UpdateDescription = CswSchemaUpdater.getDriver(UpdateToVersion).SchemaVersion + ": " + CswSchemaUpdater.getDriver(UpdateToVersion).Description; CswSchemaUpdateThread.start(); if (false == SuppressRealTimeProgressTics) { CswConsoleOutput.write(UpdateDescription + ": "); } while (CswEnumSchemaUpdateState.Running == CswSchemaUpdateThread.UpdateState) { if (false == SuppressRealTimeProgressTics) { CswConsoleOutput.write("."); } Thread.Sleep(1000); } UpdateSucceeded = (CswEnumSchemaUpdateState.Succeeded == CswSchemaUpdateThread.UpdateState); if (UpdateSucceeded) { string Message = string.Empty; if (false == SuppressRealTimeProgressTics) { Message = " succeeded" + _Separator_NuLine; } else { Message = UpdateDescription + " succeeded" + _Separator_NuLine; } CswConsoleOutput.write(Message); } else { string Message = string.Empty; if (false == SuppressRealTimeProgressTics) { Message = " failed: " + CswSchemaUpdateThread.Message + _Separator_NuLine; } else { Message = UpdateDescription + " failed: " + CswSchemaUpdateThread.Message + _Separator_NuLine; } CswConsoleOutput.write(Message, ForceWrite: true, SuppressAccessId: false); } CswNbtResources.ClearCache(); CurrentVersion = CswSchemaUpdater.CurrentVersion(CswNbtResources); } } // for() } //if pre-scripts succeded if (UpdateSucceeded) { UpdateSucceeded = _runNonVersionScripts(CswSchemaUpdater, CswSchemaScriptsProd.RunAfterScripts, CswConsoleOutput); } return(UpdateSucceeded); }//_updateAccessId()