Added new settings management
This commit is contained in:
87
App.xaml.cs
87
App.xaml.cs
@@ -1,5 +1,9 @@
|
|||||||
using System.Data.SqlClient;
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
|
using System.Xml;
|
||||||
|
using System.Xml.Serialization;
|
||||||
using DebtMgr.Data;
|
using DebtMgr.Data;
|
||||||
using DebtMgr.ViewModel;
|
using DebtMgr.ViewModel;
|
||||||
using SQLite.Net;
|
using SQLite.Net;
|
||||||
@@ -11,6 +15,20 @@ namespace DebtMgr
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public partial class App : Application
|
public partial class App : Application
|
||||||
{
|
{
|
||||||
|
#region Private Properties
|
||||||
|
|
||||||
|
private static string _settingsPath;
|
||||||
|
private static string _settingsFileName;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
public App()
|
||||||
|
{
|
||||||
|
_settingsPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
|
||||||
|
"eJay", "config");
|
||||||
|
_settingsFileName = "eJay.xml";
|
||||||
|
}
|
||||||
|
|
||||||
#region Locator
|
#region Locator
|
||||||
|
|
||||||
private static ViewModelLocator _locator;
|
private static ViewModelLocator _locator;
|
||||||
@@ -21,7 +39,7 @@ namespace DebtMgr
|
|||||||
#region Database
|
#region Database
|
||||||
|
|
||||||
private static SQLiteConnection _database;
|
private static SQLiteConnection _database;
|
||||||
public static SQLiteConnection Database => _database ?? (_database = new Database(DebtMgr.Properties.Settings.Default.Database));
|
public static SQLiteConnection Database => _database ?? (_database = new Database(Settings.Database));
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
@@ -39,5 +57,70 @@ namespace DebtMgr
|
|||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region Settings
|
||||||
|
|
||||||
|
private static EJaySettings _settings;
|
||||||
|
|
||||||
|
public static EJaySettings Settings
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if(_settings == null)
|
||||||
|
_settings = LoadSettings();
|
||||||
|
|
||||||
|
return _settings;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region SaveSettings()
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
/// <summary> Saves the settings. </summary>
|
||||||
|
/// <remarks> Andre Beging, 06.01.2019. </remarks>
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
public static void SaveSettings()
|
||||||
|
{
|
||||||
|
Directory.CreateDirectory(_settingsPath);
|
||||||
|
|
||||||
|
if (_settings == null) _settings = new EJaySettings();
|
||||||
|
using (var streamWriter = new StreamWriter(Path.Combine(_settingsPath, _settingsFileName)))
|
||||||
|
{
|
||||||
|
using (var xmlWriter = XmlWriter.Create(streamWriter))
|
||||||
|
{
|
||||||
|
var serializer = new XmlSerializer(typeof(EJaySettings));
|
||||||
|
serializer.Serialize(xmlWriter, _settings);
|
||||||
|
streamWriter.Flush();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region LoadSettings()
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
/// <summary> Loads the settings. </summary>
|
||||||
|
/// <remarks> Andre Beging, 06.01.2019. </remarks>
|
||||||
|
/// <returns> The settings. </returns>
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
private static EJaySettings LoadSettings()
|
||||||
|
{
|
||||||
|
var targetFile = Path.Combine(_settingsPath, _settingsFileName);
|
||||||
|
if (File.Exists(targetFile))
|
||||||
|
{
|
||||||
|
using (var stream = File.OpenRead(targetFile))
|
||||||
|
{
|
||||||
|
var serializer = new XmlSerializer(typeof(EJaySettings));
|
||||||
|
return serializer.Deserialize(stream) as EJaySettings;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return new EJaySettings();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
15
Data/EJaySettings.cs
Normal file
15
Data/EJaySettings.cs
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
namespace DebtMgr.Data
|
||||||
|
{
|
||||||
|
public class EJaySettings
|
||||||
|
{
|
||||||
|
public string Database { get; set; }
|
||||||
|
|
||||||
|
public string TelegramPath { get; set; }
|
||||||
|
|
||||||
|
public EJaySettings()
|
||||||
|
{
|
||||||
|
Database = string.Empty;
|
||||||
|
TelegramPath = string.Empty;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -49,5 +49,5 @@ using System.Windows;
|
|||||||
// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
|
// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
|
||||||
// übernehmen, indem Sie "*" eingeben:
|
// übernehmen, indem Sie "*" eingeben:
|
||||||
// [assembly: AssemblyVersion("1.0.*")]
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
[assembly: AssemblyVersion("1.0.0.0")]
|
[assembly: AssemblyVersion("1.0.0")]
|
||||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
[assembly: AssemblyFileVersion("1.0.0")]
|
||||||
Reference in New Issue
Block a user