From 0b791f5747337deb2557ccc89e7b9ec95af95d1b Mon Sep 17 00:00:00 2001 From: Ben Wallis Date: Thu, 1 Sep 2016 20:26:55 +0100 Subject: [PATCH] Fixed #33 - Update check window buttons erroneously shut down application --- .../Services/serializationtest.cs | 1 + Filtration.db | Bin 4096 -> 4096 bytes Filtration/App.xaml.cs | 9 +++-- Filtration/Services/UpdateCheckService.cs | 27 +++++++++----- Filtration/ViewModels/MainWindowViewModel.cs | 35 ++---------------- 5 files changed, 26 insertions(+), 46 deletions(-) diff --git a/Filtration.ItemFilterPreview.Tests/Services/serializationtest.cs b/Filtration.ItemFilterPreview.Tests/Services/serializationtest.cs index 45a6942..5e3e1e6 100644 --- a/Filtration.ItemFilterPreview.Tests/Services/serializationtest.cs +++ b/Filtration.ItemFilterPreview.Tests/Services/serializationtest.cs @@ -12,6 +12,7 @@ namespace Filtration.ItemFilterPreview.Tests.Services { class serializationtest { + [Ignore("")] [Test] public void test_serialization() { diff --git a/Filtration.db b/Filtration.db index 05e0664c76a3569d5a20542a584d69c10b0e89c1..4e472682ec67c813a137cd4c65d89acac5f04dfc 100644 GIT binary patch delta 17 YcmZorXi%6S%_uxk#+gxgW5NP{04kIO!~g&Q delta 17 YcmZorXi%6S%_ulg#+gxYW5NP{04jC_zyJUM diff --git a/Filtration/App.xaml.cs b/Filtration/App.xaml.cs index abe7826..19c8f2e 100644 --- a/Filtration/App.xaml.cs +++ b/Filtration/App.xaml.cs @@ -1,18 +1,16 @@ using System; -using System.IO; using System.Linq; -using System.Reflection; using System.Windows; using System.Windows.Threading; using AutoMapper; using Castle.Facilities.TypedFactory; using Castle.MicroKernel.ModelBuilder.Inspectors; -using Castle.MicroKernel.Registration; using Castle.Windsor; using Castle.Windsor.Installer; using Filtration.ObjectModel; using Filtration.ObjectModel.ThemeEditor; using Filtration.Properties; +using Filtration.Services; using Filtration.ThemeEditor.ViewModels; using Filtration.ViewModels; using Filtration.Views; @@ -71,8 +69,11 @@ namespace Filtration var mainWindow = _container.Resolve(); mainWindow.Show(); - } + var updateCheckService = _container.Resolve(); + updateCheckService.CheckForUpdates(); + } + private static void OnDispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e) { Logger.Fatal(e.Exception); diff --git a/Filtration/Services/UpdateCheckService.cs b/Filtration/Services/UpdateCheckService.cs index 6d4d04b..cd94bdc 100644 --- a/Filtration/Services/UpdateCheckService.cs +++ b/Filtration/Services/UpdateCheckService.cs @@ -6,13 +6,15 @@ using System.Windows; using System.Xml.Serialization; using Filtration.Models; using Filtration.Properties; +using Filtration.ViewModels; +using Filtration.Views; using NLog; namespace Filtration.Services { internal interface IUpdateCheckService { - UpdateData CheckForUpdates(); + void CheckForUpdates(); } internal class UpdateCheckService : IUpdateCheckService @@ -20,13 +22,16 @@ namespace Filtration.Services private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); private readonly IHTTPService _httpService; - - public UpdateCheckService(IHTTPService httpService) + private readonly IUpdateAvailableViewModel _updateAvailableViewModel; + + public UpdateCheckService(IHTTPService httpService, + IUpdateAvailableViewModel updateAvailableViewModel) { _httpService = httpService; + _updateAvailableViewModel = updateAvailableViewModel; } - public UpdateData CheckForUpdates() + public void CheckForUpdates() { var assemblyVersion = FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location); @@ -45,7 +50,6 @@ namespace Filtration.Services Settings.Default.Save(); updateData.UpdateAvailable = true; - return updateData; } } @@ -72,9 +76,14 @@ namespace Filtration.Services } } } - - updateData.UpdateAvailable = false; - return updateData; + + if (updateData.UpdateAvailable) + { + var updateAvailableView = new UpdateAvailableView { DataContext = _updateAvailableViewModel }; + _updateAvailableViewModel.Initialise(updateData); + _updateAvailableViewModel.OnRequestClose += (s, e) => updateAvailableView.Close(); + updateAvailableView.ShowDialog(); + } } catch (Exception e) { @@ -82,8 +91,6 @@ namespace Filtration.Services // We don't care if the update check fails, because it could fail for multiple reasons // including the user blocking Filtration in their firewall. } - - return null; } private static bool LatestVersionIsNewerThanSuppressedVersion(UpdateData updateData) diff --git a/Filtration/ViewModels/MainWindowViewModel.cs b/Filtration/ViewModels/MainWindowViewModel.cs index b7c704e..79444f5 100644 --- a/Filtration/ViewModels/MainWindowViewModel.cs +++ b/Filtration/ViewModels/MainWindowViewModel.cs @@ -10,13 +10,10 @@ using System.Windows.Forms; using System.Windows.Media; using System.Windows.Media.Imaging; using Filtration.Common.Services; -using Filtration.Common.ViewModels; using Filtration.Interface; -using Filtration.Models; using Filtration.ObjectModel.Enums; using Filtration.ObjectModel.ThemeEditor; using Filtration.Parser.Interface.Services; -using Filtration.Properties; using Filtration.Repositories; using Filtration.Services; using Filtration.ThemeEditor.Messages; @@ -50,8 +47,6 @@ namespace Filtration.ViewModels private readonly IAvalonDockWorkspaceViewModel _avalonDockWorkspaceViewModel; private readonly IThemeProvider _themeProvider; private readonly IThemeService _themeService; - private readonly IUpdateCheckService _updateCheckService; - private readonly IUpdateAvailableViewModel _updateAvailableViewModel; private readonly IMessageBoxService _messageBoxService; private readonly IClipboardService _clipboardService; private bool _showLoadingBanner; @@ -63,8 +58,6 @@ namespace Filtration.ViewModels ISettingsPageViewModel settingsPageViewModel, IThemeProvider themeProvider, IThemeService themeService, - IUpdateCheckService updateCheckService, - IUpdateAvailableViewModel updateAvailableViewModel, IMessageBoxService messageBoxService, IClipboardService clipboardService) { @@ -75,8 +68,6 @@ namespace Filtration.ViewModels SettingsPageViewModel = settingsPageViewModel; _themeProvider = themeProvider; _themeService = themeService; - _updateCheckService = updateCheckService; - _updateAvailableViewModel = updateAvailableViewModel; _messageBoxService = messageBoxService; _clipboardService = clipboardService; @@ -102,10 +93,8 @@ namespace Filtration.ViewModels AddBlockCommand = new RelayCommand(OnAddBlockCommand, () => ActiveDocumentIsScript); AddSectionCommand = new RelayCommand(OnAddSectionCommand, () => ActiveDocumentIsScript); DeleteBlockCommand = new RelayCommand(OnDeleteBlockCommand, () => ActiveDocumentIsScript && ActiveScriptHasSelectedBlock); - DisableBlockCommand = new RelayCommand(OnDisableBlockCommand, - () => ActiveDocumentIsScript && ActiveScriptHasSelectedEnabledBlock); - EnableBlockCommand = new RelayCommand(OnEnableBlockCommand, - () => ActiveDocumentIsScript && ActiveScriptHasSelectedDisabledBlock); + DisableBlockCommand = new RelayCommand(OnDisableBlockCommand, () => ActiveDocumentIsScript && ActiveScriptHasSelectedEnabledBlock); + EnableBlockCommand = new RelayCommand(OnEnableBlockCommand, () => ActiveDocumentIsScript && ActiveScriptHasSelectedDisabledBlock); OpenAboutWindowCommand = new RelayCommand(OnOpenAboutWindowCommand); ReplaceColorsCommand = new RelayCommand(OnReplaceColorsCommand, () => ActiveDocumentIsScript); @@ -116,10 +105,7 @@ namespace Filtration.ViewModels AddTextColorThemeComponentCommand = new RelayCommand(OnAddTextColorThemeComponentCommand, () => ActiveDocumentIsTheme && ActiveThemeIsEditable); AddBackgroundColorThemeComponentCommand = new RelayCommand(OnAddBackgroundColorThemeComponentCommand, () => ActiveDocumentIsTheme && ActiveThemeIsEditable); AddBorderColorThemeComponentCommand = new RelayCommand(OnAddBorderColorThemeComponentCommand, () => ActiveDocumentIsTheme && ActiveThemeIsEditable); - DeleteThemeComponentCommand = new RelayCommand(OnDeleteThemeComponentCommand, - () => - ActiveDocumentIsTheme && ActiveThemeIsEditable && - _avalonDockWorkspaceViewModel.ActiveThemeViewModel.SelectedThemeComponent != null); + DeleteThemeComponentCommand = new RelayCommand(OnDeleteThemeComponentCommand, () => ActiveDocumentIsTheme && ActiveThemeIsEditable && _avalonDockWorkspaceViewModel.ActiveThemeViewModel.SelectedThemeComponent != null); ExpandAllBlocksCommand = new RelayCommand(OnExpandAllBlocksCommand, () => ActiveDocumentIsScript); CollapseAllBlocksCommand = new RelayCommand(OnCollapseAllBlocksCommand, () => ActiveDocumentIsScript); @@ -189,8 +175,6 @@ namespace Filtration.ViewModels } } }); - - CheckForUpdates(); } public RelayCommand OpenScriptCommand { get; } @@ -232,19 +216,6 @@ namespace Filtration.ViewModels public RelayCommand ToggleShowAdvancedCommand { get; } public RelayCommand ClearFiltersCommand { get; } - - private void CheckForUpdates() - { - var updateData = _updateCheckService.CheckForUpdates(); - - if (updateData != null && updateData.UpdateAvailable) - { - var updateAvailableView = new UpdateAvailableView { DataContext = _updateAvailableViewModel }; - _updateAvailableViewModel.Initialise(updateData); - _updateAvailableViewModel.OnRequestClose += (s, e) => updateAvailableView.Close(); - updateAvailableView.ShowDialog(); - } - } public ImageSource Icon { get; private set; }