public ShellViewModel( IDialogService dialogService, IWindowManager windowManager, ISettingsProvider settingsService, IEventAggregator eventAggregator, MDIViewModel mdi, SettingsViewModel settingsViewModel, UpdaterViewModel updaterViewModel, Func <DocumentViewModel> documentCreator, Func <OpenFromWebViewModel> openFromWebCreator) { this.eventAggregator = eventAggregator; this.dialogService = dialogService; this.windowManager = windowManager; this.settingsService = settingsService; MDI = mdi; Updater = updaterViewModel; this.documentCreator = documentCreator; this.openFromWebCreator = openFromWebCreator; Settings = settingsViewModel; Settings.Initialize(); ActivateItem(mdi); }
public ShellViewModel( IDialogService dialogService, IEventAggregator eventAggregator, MdiViewModel mdi, SettingsViewModel settingsViewModel, UpdaterViewModel updaterViewModel, Func <DocumentViewModel> documentViewModelFactory, IDocumentFactory documentFactory, IFileSystem fileSystem, SearchSettings searchSettings, IOpenDocumentFromWeb openDocumentFromWeb) { this.eventAggregator = eventAggregator; this.dialogService = dialogService; MDI = mdi; Updater = updaterViewModel; this.documentViewModelFactory = documentViewModelFactory; this.documentFactory = documentFactory; this.fileSystem = fileSystem; SearchSettings = searchSettings; this.openDocumentFromWeb = openDocumentFromWeb; Settings = settingsViewModel; Settings.Initialize(); NewDocumentCommand = new DelegateCommand(() => NewDocument()); NewJekyllDocumentCommand = new DelegateCommand(() => NewDocument(CreateJekyllHeader())); SaveDocumentCommand = new AwaitableDelegateCommand(SaveDocument, () => !IsWorking); SaveDocumentAsCommand = new AwaitableDelegateCommand(SaveDocumentAs, () => !IsWorking); SaveAllDocumentsCommand = new AwaitableDelegateCommand(SaveAllDocuments, () => !IsWorking); PublishDocumentCommand = new AwaitableDelegateCommand(PublishDocument, () => !IsWorking); OpenDocumentCommand = new DelegateCommand(OpenDocument, () => !IsWorking); OpenFromWebCommand = new AwaitableDelegateCommand(OpenFromWeb, () => !IsWorking); CloseDocumentCommand = new DelegateCommand(CloseDocument, () => ActiveDocumentViewModel != null); ActivateItem(mdi); }
public ShellViewModel( IDialogService dialogService, IEventAggregator eventAggregator, MdiViewModel mdi, SettingsViewModel settingsViewModel, UpdaterViewModel updaterViewModel, Func <DocumentViewModel> documentViewModelFactory, IDocumentFactory documentFactory, IFileSystem fileSystem, SearchSettings searchSettings) { this.eventAggregator = eventAggregator; this.dialogService = dialogService; MDI = mdi; Updater = updaterViewModel; this.documentViewModelFactory = documentViewModelFactory; this.documentFactory = documentFactory; this.fileSystem = fileSystem; SearchSettings = searchSettings; Settings = settingsViewModel; Settings.Initialize(); ActivateItem(mdi); }
private void ThisAddIn_Shutdown(object sender, System.EventArgs e) { Logger.Info("ThisAddIn_Shutdown: Starting to clean up after ourselves"); XLToolbox.UserSettings.UserSettings.Default.Running = false; XLToolbox.UserSettings.UserSettings.Default.Save(); XLToolbox.Backup.Backups.BackupFailed -= Backups_BackupFailed; if (XLToolbox.Legacy.LegacyToolbox.IsInitialized) { Logger.Info("Disposing legacy add-in"); XLToolbox.Legacy.LegacyToolbox.Default.Dispose(); } if (Updater.Default != null && Updater.Default.Status == Bovender.Versioning.UpdaterStatus.Downloaded) { Logger.Info("ThisAddIn_Shutdown: Offering to install update that was previously downloaded"); UpdaterViewModel updaterVM = new UpdaterViewModel(Updater.Default); // Must show the InstallUpdateView modally, because otherwise Excel would // continue to shut down and immediately remove the view while doing so. updaterVM.InjectInto <XLToolbox.Versioning.InstallUpdateView>().ShowDialogInForm(); } ; // Prevent "LocalDataSlot storage has been freed" exceptions; // see http://j.mp/localdatastoreslot Dispatcher.CurrentDispatcher.InvokeShutdown(); Logger.Info("ThisAddIn_Shutdown: Done."); }
public UpdaterWindow(UpdateItem updateItem) { if (updateItem == null) { throw new ArgumentNullException(nameof(updateItem)); } updaterViewModel = new WpfUpdaterViewModel(this, updateItem); DataContext = updaterViewModel; InitializeComponent(); new XcbWebView(webBrowser); webBrowser.Loaded += (o, e) => webBrowser.NavigateToString(updaterViewModel.ReleaseNotes); webBrowser.Navigating += (o, e) => { if (e.Uri != null) { Process.Start(e.Uri.ToString()); e.Cancel = true; } }; remindMeLaterButton.Click += (o, e) => Close(); downloadButton.Click += (o, e) => updaterViewModel.StartDownloadAsync().Forget(); cancelButton.Click += (o, e) => updaterViewModel.CancelDownload(); preferenceChangeSubscription = PreferenceStore.Default.Subscribe(ObservePreferenceChange); }
public UpdatePage(UpdaterViewModel updaterModel) { InitializeComponent(); UpdaterModel = updaterModel; this.DataContext = UpdaterModel; // this.Loaded += UpdatePage_Loaded; }
private void AppOnStartup(object sender, StartupEventArgs e) { foreach (var proc in Process.GetProcessesByName("CappuChat")) { proc.Kill(); } var serverConfigurationController = new ConfigurationController <ServerConfiguration>(); if (!serverConfigurationController.TryReadConfiguration(out var serverConfiguration)) { MessageBox.Show("Could not retrieve Configuration to download files."); } var chatClientPath = $"{Environment.CurrentDirectory}\\CappuChat.exe"; string[] arguments = { $"-assemblyPath=\"{chatClientPath}\" ", $"-host=\"{serverConfiguration.Host}\" ", $"-ftpuser=\"{serverConfiguration.FtpUser}\" ", $"-ftppassword=\"{serverConfiguration.FtpPassword}\" " }; var updaterArguments = new UpdaterArguments(arguments); var updaterViewModel = new UpdaterViewModel(updaterArguments); var window = new MainWindow { DataContext = updaterViewModel, WindowStartupLocation = WindowStartupLocation.CenterScreen }; var colorConfigurationController = new ConfigurationController <ColorConfiguration>(); var colorConfiguration = colorConfigurationController.ReadConfiguration(new ColorConfiguration { Color = "Steel" }); ThemeManager.AddAccent("Orgadata", new Uri("Styles/OrgadataTheme.xaml")); var foundAccent = ThemeManager.Accents.FirstOrDefault(accent => accent.Name.Equals(colorConfiguration.Color, StringComparison.CurrentCultureIgnoreCase)); var theme = ThemeManager.DetectAppStyle(Current); ThemeManager.ChangeAppStyle(Current, foundAccent, theme.Item1); window.Show(); Task.Run(async() => { await updaterViewModel.Update().ConfigureAwait(false); }); }
public void PresentUpdate(UpdateItem updateItem) { viewModel = new MacUpdaterViewModel(View.Window, updateItem); viewModel.PropertyChanged += ViewModel_PropertyChanged; viewModel.DownloadItem.PropertyChanged += DownloadItem_PropertyChanged; ViewModel_PropertyChanged(null, null); DownloadItem_PropertyChanged(null, null); webView.MainFrame.LoadHtmlString(updateItem.ReleaseNotes, NSBundle.MainBundle.ResourceUrl); View.Window.MakeKeyAndOrderFront(this); }
static void CheckForUpdate() { Updater.CanCheck = false; ReleaseInfo releaseInfo = new ReleaseInfo(); Bovender.Versioning.ReleaseInfoViewModel releaseInfoVM = new Bovender.Versioning.ReleaseInfoViewModel( releaseInfo, XLToolbox.Versioning.SemanticVersion.Current); releaseInfoVM.ShowProgressMessage.Sent += (sender, args) => { args.Content.Caption = Strings.CheckForUpdates; args.Content.CancelButtonText = Strings.Cancel; args.Content.InjectInto <Bovender.Mvvm.Views.ProcessView>().ShowInForm(); }; releaseInfoVM.UpdateAvailableMessage.Sent += (sender, args) => { Logger.Info("CheckForUpdate: UpdateAvailableMessage received"); UpdaterViewModel updaterVM = new UpdaterViewModel(Updater.CreateDefault(releaseInfo)); updaterVM.ShowUpdateAvailableView(); }; releaseInfoVM.NoUpdateAvailableMessage.Sent += (sender, args) => { Logger.Info("CheckForUpdate: NoUpdateAvailableMessage received"); ProcessCompletedAction a = new ProcessCompletedAction( args.Content as ProcessMessageContent, Strings.CheckForUpdates, Strings.YouHaveTheLatestVersion, Strings.OK); a.InvokeWithContent(args.Content); Updater.CanCheck = true; }; releaseInfoVM.ExceptionMessage.Sent += (sender, args) => { Logger.Warn("CheckForUpdate: ExceptionMessage received"); Logger.Warn(releaseInfoVM.Exception); ProcessCompletedAction a = new ProcessCompletedAction( args.Content as ProcessMessageContent, Strings.CheckForUpdates, Strings.FetchingVersionInformationFailed, Strings.OK); a.InvokeWithContent(args.Content); Updater.CanCheck = true; }; releaseInfoVM.StartProcess(); }