Beispiel #1
0
        private void StartupOnDatabaseFound(object sender, PlatformDatabaseFoundEventArgs args)
        {
            //its a healthy message, jolly good
            if (args.Status == RDMPPlatformDatabaseStatus.Healthy)
            {
                return;
            }

            if (args.Status == RDMPPlatformDatabaseStatus.SoftwareOutOfDate)
            {
                Assert.Fail(@"Your TEST database schema is out of date with the API version you are testing with, 'run rdmp.exe install ...' to install the version which matches your nuget package.");
            }

            if (args.Exception != null)
            {
                Assert.Fail(args.SummariseAsString());
            }

            //its a tier appropriate fatal error message
            if (args.Status == RDMPPlatformDatabaseStatus.Broken || args.Status == RDMPPlatformDatabaseStatus.Unreachable)
            {
                Assert.Fail(args.SummariseAsString());
            }

            //its slightly dodgy about it's version numbers
            if (args.Status == RDMPPlatformDatabaseStatus.RequiresPatching)
            {
                Assert.Fail(args.SummariseAsString());
            }
        }
Beispiel #2
0
        private void Startup_DatabaseFound(object sender, PlatformDatabaseFoundEventArgs e)
        {
            string msg = "RDMPPlatformDatabaseStatus is " + e.Status + " for tier " + e.Patcher.Tier +
                         (e.Exception == null
                      ? "No exception"
                      : ExceptionHelper.ExceptionToListOfInnerMessages(e.Exception));

            Logger.Log(e.Status == RDMPPlatformDatabaseStatus.Healthy ? LogLevel.Info : LogLevel.Error, e.Exception, msg);
        }
Beispiel #3
0
        void StartupDatabaseFound(object sender, PlatformDatabaseFoundEventArgs eventArgs)
        {
            if (IsDisposed || !IsHandleCreated)
            {
                return;
            }

            if (InvokeRequired)
            {
                Invoke(new MethodInvoker(() => StartupDatabaseFound(sender, eventArgs)));
                return;
            }

            HandleDatabaseFoundOnSimpleUI(eventArgs);
        }
Beispiel #4
0
        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();
            }
        }