public PlatformDatabaseFoundEventArgs(ITableRepository repository, IPatcher patcher, RDMPPlatformDatabaseStatus status, Exception exception = null) { Repository = repository; Patcher = patcher; Status = status; Exception = exception; }
private void HandleDatabaseFoundOnSimpleUI(PlatformDatabaseFoundEventArgs eventArgs) { //if status got worse if (eventArgs.Status < lastStatus) { lastStatus = eventArgs.Status; } //if we are unable to reach a tier 1 database don't report anything else if (_couldNotReachTier1Database) { return; } lblProgress.Text = eventArgs.Patcher.Name + " database status was " + eventArgs.Status; switch (eventArgs.Status) { case RDMPPlatformDatabaseStatus.Unreachable: if (eventArgs.Patcher.Tier == 1) { pbDisconnected.Visible = true; if (eventArgs.Repository == null) { lblProgress.Text = "RDMP Platform Databases are not set"; } else { lblProgress.Text = "Could not reach " + eventArgs.Patcher.Name; } _couldNotReachTier1Database = true; ragSmiley1.Fatal(new Exception(string.Format("Core Platform Database was {0} ({1})", eventArgs.Status, eventArgs.Patcher.Name), eventArgs.Exception)); } else { ragSmiley1.Warning(new Exception(string.Format("Tier {0} Database was {1} ({2})", eventArgs.Patcher.Tier, eventArgs.Status, eventArgs.Patcher.Name), eventArgs.Exception)); } break; case RDMPPlatformDatabaseStatus.Broken: if (eventArgs.Patcher.Tier == 1) { ragSmiley1.Fatal(new Exception(string.Format("Core Platform Database was {0} ({1})", eventArgs.Status, eventArgs.Patcher.Name), eventArgs.Exception)); } else { ragSmiley1.Warning(new Exception(string.Format("Tier {0} Database was {1} ({2})", eventArgs.Patcher.Tier, eventArgs.Status, eventArgs.Patcher.Name), eventArgs.Exception)); } break; case RDMPPlatformDatabaseStatus.RequiresPatching: if (MessageBox.Show("Patching Required on database of type " + eventArgs.Patcher.Name, "Patch", MessageBoxButtons.YesNo) == DialogResult.Yes) { PatchingUI.ShowIfRequired( eventArgs.Repository.DiscoveredServer.GetCurrentDatabase(), eventArgs.Repository, eventArgs.Patcher); DoNotContinue = true; } else { MessageBox.Show("Patching was cancelled, application will exit"); Application.Exit(); } break; case RDMPPlatformDatabaseStatus.Healthy: ragSmiley1.OnCheckPerformed(new CheckEventArgs(eventArgs.SummariseAsString(), CheckResult.Success)); return; case RDMPPlatformDatabaseStatus.SoftwareOutOfDate: if (!_haveWarnedAboutOutOfDate) { MessageBox.Show("The RDMP database you are connecting to is running a newer schema to your software, please consider updating the software to the latest version"); _haveWarnedAboutOutOfDate = true; } return; default: throw new ArgumentOutOfRangeException(); } }