protected override void SetupApplication() { RenderSplashScreen(); app.SetupMiningEngineEvents(); app.LoadPreviousHistory(); app.DataModified += (object sender, EventArgs e) => { ScreenDirty = true; }; app.ConfigurationModified += (object sender, EventArgs e) => { ScreenDirty = true; }; app.ProgressStarted += (object sender, ProgressEventArgs e) => { currentProgress = e.Text; RenderScreen(); }; app.ProgressCompleted += (object sender, EventArgs e) => { currentProgress = String.Empty; RenderScreen(); }; app.NotificationReceived += (object sender, NotificationEventArgs e) => { notifications.Add(e); ScreenDirty = true; }; app.NotificationDismissed += (object sender, NotificationEventArgs e) => { notifications.RemoveAll(n => !String.IsNullOrEmpty(n.Id) && n.Id.Equals(e.Id)); ScreenDirty = true; }; app.PromptReceived += (object sender, PromptEventArgs e) => { currentPrompt = e; promptTime = DateTime.Now; RenderScreen(); }; app.CredentialsRequested += (object sender, CredentialsEventArgs e) => { e.CredentialsProvided = false; credentialsPhase = CredentialsPhase.Username; credentialsTarget = app.LocalViewModel.GetNetworkDeviceByFriendlyName(e.ProtectedResource); RenderScreen(); }; app.Context = threadContext; mineOnStartTimer.Elapsed += (object sender, ElapsedEventArgs e) => { if (app.StartupMiningCountdownSeconds > 0) currentProgress = string.Format("Mining will start automatically in {0} seconds...", app.StartupMiningCountdownSeconds); else { currentProgress = String.Empty; mineOnStartTimer.Enabled = false; } RenderScreen(); }; RegisterCommands(); RegisterScreens(); RegisterSettings(); }
private PromptResult MessageBoxShow(string text, string caption, PromptButtons buttons, PromptIcon icon) { PromptEventArgs e = new PromptEventArgs { Caption = caption, Text = text, Buttons = buttons, Icon = icon }; PromptReceived(this, e); return e.Result; }
private void OutputSpecial() { if (credentialsPhase != CredentialsPhase.None) { OutputCredentialsPrompt(); return; //early exit, prompt rendered } if (currentPrompt != null) { if ((DateTime.Now - promptTime).TotalSeconds > 30) currentPrompt = null; else { OutputCurrentPrompt(); return; //early exit, prompt rendered } } OutputCurrentProgress(); }