Added migration for old configs

This commit is contained in:
Darth Affe 2017-09-29 10:17:31 +02:00
parent 9d4aa2728c
commit 07e4221877
4 changed files with 66 additions and 2 deletions

View File

@ -1,12 +1,12 @@
using System;
using System.Diagnostics;
using System.IO;
using System.Windows;
using Hardcodet.Wpf.TaskbarNotification;
using KeyboardAudioVisualizer.AudioProcessing;
using KeyboardAudioVisualizer.Configuration;
using KeyboardAudioVisualizer.Helper;
using KeyboardAudioVisualizer.Legacy;
using Newtonsoft.Json;
using Settings = KeyboardAudioVisualizer.Configuration.Settings;
namespace KeyboardAudioVisualizer
{
@ -43,6 +43,10 @@ namespace KeyboardAudioVisualizer
Console.WriteLine(ex.Message);
/* File doesn't exist or is corrupt - just create a new one. */
}
if (settings == null)
settings = ConfigurationMigrator.MigrateOldConfig();
if (settings == null)
{
settings = new Settings();
@ -68,6 +72,7 @@ namespace KeyboardAudioVisualizer
base.OnExit(e);
File.WriteAllText(PATH_SETTINGS, JsonConvert.SerializeObject(ApplicationManager.Instance.Settings));
ConfigurationMigrator.CleanupOldConfigs();
}
#endregion

View File

@ -1,6 +1,7 @@
using System;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using System.Xml.Serialization;
using RGB.NET.Core;
namespace KeyboardAudioVisualizer.Configuration
@ -10,6 +11,7 @@ namespace KeyboardAudioVisualizer.Configuration
#region Properties & Fields
private IBrush _brush;
[XmlIgnore]
public IBrush Brush
{
get => _brush;

View File

@ -164,6 +164,7 @@
<Compile Include="Helper\WPFHelper.cs" />
<Compile Include="Configuration\Settings.cs" />
<Compile Include="Controls\BlurredDecorationWindow.cs" />
<Compile Include="Legacy\ConfigurationMigrator.cs" />
<Compile Include="Legacy\Settings.cs" />
<Compile Include="Styles\CachedResourceDictionary.cs" />
<Compile Include="UI\ConfigurationWindow.xaml.cs">

View File

@ -0,0 +1,56 @@
using System.IO;
using KeyboardAudioVisualizer.AudioProcessing.VisualizationProvider;
using KeyboardAudioVisualizer.Helper;
namespace KeyboardAudioVisualizer.Legacy
{
public static class ConfigurationMigrator
{
#region Constants
private const string PATH_V1_SETTINGS = "Settings.xml";
#endregion
#region Constructors
#endregion
#region Methods
public static Configuration.Settings MigrateOldConfig()
{
if (!File.Exists(PATH_V1_SETTINGS)) return null;
try
{
Settings oldSettings = SerializationHelper.LoadObjectFromFile<Settings>(PATH_V1_SETTINGS);
Configuration.Settings settings = new Configuration.Settings { UpdateRate = oldSettings.UpdateRate };
settings[VisualizationIndex.Primary].SelectedVisualization = VisualizationType.FrequencyBars;
settings[VisualizationIndex.Primary].FrequencyBarsConfiguration = oldSettings.FrequencyBarsVisualizationProviderConfiguration;
settings[VisualizationIndex.Primary].EqualizerConfiguration = oldSettings.EqualizerConfiguration;
settings[VisualizationIndex.Secondary].SelectedVisualization = VisualizationType.Beat;
settings[VisualizationIndex.Secondary].BeatConfiguration = oldSettings.BeatVisualizationProviderConfiguration;
settings[VisualizationIndex.Tertiary].SelectedVisualization = VisualizationType.Level;
settings[VisualizationIndex.Tertiary].LevelConfiguration = oldSettings.LevelVisualizationProviderConfiguration;
return settings;
}
catch
{
return null;
}
}
public static void CleanupOldConfigs()
{
if (File.Exists(PATH_V1_SETTINGS))
File.Delete(PATH_V1_SETTINGS);
}
#endregion
}
}