Files
Filtration/Filtration/ViewModels/SettingsPageViewModel.cs

53 lines
2.0 KiB
C#

using System.IO;
using System.Windows;
using Filtration.Common.Services;
using Filtration.Common.ViewModels;
using Filtration.Properties;
using Filtration.Services;
using GalaSoft.MvvmLight.CommandWpf;
namespace Filtration.ViewModels
{
internal interface ISettingsPageViewModel
{
}
internal class SettingsPageViewModel : FiltrationViewModelBase, ISettingsPageViewModel
{
private readonly IItemFilterPersistenceService _itemFilterPersistenceService;
private readonly IMessageBoxService _messageBoxService;
public SettingsPageViewModel(IItemFilterPersistenceService itemFilterPersistenceService, IMessageBoxService messageBoxService)
{
_itemFilterPersistenceService = itemFilterPersistenceService;
_messageBoxService = messageBoxService;
SaveCommand = new RelayCommand(OnSaveCommand);
DefaultFilterDirectory = Settings.Default.DefaultFilterDirectory;
ExtraLineBetweenBlocks = Settings.Default.ExtraLineBetweenBlocks;
SuppressUpdateNotifications = Settings.Default.SuppressUpdates;
}
public RelayCommand SaveCommand { get; private set; }
public string DefaultFilterDirectory { get; set; }
public bool ExtraLineBetweenBlocks { get; set; }
public bool SuppressUpdateNotifications { get; set; }
private void OnSaveCommand()
{
try
{
_itemFilterPersistenceService.SetItemFilterScriptDirectory(DefaultFilterDirectory);
Settings.Default.ExtraLineBetweenBlocks = ExtraLineBetweenBlocks;
Settings.Default.SuppressUpdates = SuppressUpdateNotifications;
}
catch (DirectoryNotFoundException)
{
_messageBoxService.Show("Error", "The entered Default Filter Directory is invalid or does not exist.",
MessageBoxButton.OK, MessageBoxImage.Exclamation);
}
}
}
}